蓝桥杯-BASIC-9-特殊回文数
【摘要】 问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
989989
998899
解题思路
回文数 循环 条件语句
参考代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n=input.nextInt();
input.close();
for (int i = 10000; i < 1000000; i++) {
if (isHuiwenshu(i)) {
//五位数
if (geshu(i)==5) {
if (i/10000*2+i/1000%10*2+i/100%10==n) {
System.out.println(i);
}
}
//六位数
if (geshu(i)==6) {
if (i/100000*2+i/10000%10*2+i/1000%10*2==n) {
System.out.println(i);
}
}
}
}
}
//判断是否为回文数
public static boolean isHuiwenshu(int nn) {
String str=String.valueOf(nn);
int i=0;
int j=str.length()-1;
while (i<j) {
if (str.charAt(i++)!=str.charAt(j--))
return false;
}
return true;
}
//个数
public static int geshu(int num) {
String str=String.valueOf(num);
int g=str.length();
return g;
}
}
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n=input.nextInt();
input.close();
for (int i = 10000; i < 1000000; i++) {
if (isHuiwenshu(i)) {
//五位数
if (geshu(i)==5) {
if (i/10000*2+i/1000%10*2+i/100%10==n) {
System.out.println(i);
}
}
//六位数
if (geshu(i)==6) {
if (i/100000*2+i/10000%10*2+i/1000%10*2==n) {
System.out.println(i);
}
}
}
}
}
//判断是否为回文数
public static boolean isHuiwenshu(int nn) {
String str=String.valueOf(nn);
int i=0;
int j=str.length()-1;
while (i<j) {
if (str.charAt(i++)!=str.charAt(j--))
return false;
}
return true;
}
//个数
public static int geshu(int num) {
String str=String.valueOf(num);
int g=str.length();
return g;
}
}
希望能给您带来一些价值。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)