基础练习 特殊回文数 java实现
解题思路:直接暴力解法遍历即可,这里要注意,我第一次用的方法是用了六个for循环将每一位数分开最后再判断计算输出,并不满足题目要求,因为输出时5位数和六位数并不能按照从小到大的顺序输出。
正确代码如下
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
/*这道题我第一次的解法是套了6个for循环但并不正确,因为最后输出结果,并不是按大小排序
5位数和6位数会使排序混乱,所以定义两个for循环更合适,也更节省内存。
*/
for(int i=10000;i<=99999;i++) {
int i1=i/10000;
int i2=i/1000%10;
int i3=i/100%10; //这里注意仔细计算怎么计算每个位数java里的除法是直接舍弃
int i4=i%100/10;
int i5=i%10;
if(i1+i2+i3+i4+i5==a&&i1==i5&&i2==i4) {
System.out.println(i);
}
}
for(int i=100000;i<=999999;i++) {//这里注意要变
int i1=i/100000;
int i2=i/10000%10;
int i3=i/1000%10;
int i4=i%1000/100;
int i5=i%100/10;
int i6=i%10;
if(i1+i2+i3+i4+i6+i5==a&&i1==i6&&i2==i5&&i3==i4) {
System.out.println(i);
}
}
}
}
最终结果评测满分。