基础练习 特殊回文数
时间限制:1.0s 内存限制:512.0MB
问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899数据规模和约定
1<=n<=54。
由于for循环和条件语句的结合容易造成疏漏,要注意细节,不要弄错变量与变量之间的区别
如下是我用的暴力解决方法所写代码:
public class Work1 {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
int n,x;
String str;
n=sca.nextInt();
for(int i=10000;i<1000000;i++){
str=Integer.toString(i); //将整形转换为字符串型
x=0;
//方法二
//str=String.valueOf(i);
for(int j=0;j<str.length()/2;j++){
if(str.charAt(j)==str.charAt(str.length()-1-j)){
// 或用 x=x+Integer.valueOf(str.charAt(j)).intValue()*2;
x+=(str.charAt(j)-'0')*2;
}
else if(str.charAt(j)!=str.charAt(str.length()-1-j)){
break;
}
if(j==str.length()/2-1){
if(str.length()%2==0&&n==x){
System.out.println(i);
}
else if(str.length()%2==1){
x+=str.charAt(j+1)-'0';
if(n==x){
System.out.println(i);
}
}
}
}
}
}
}