最少一次循环就可以,时间复杂度N
public static void main(String[] args) {
int n = 52;
for(int i=10000;i<=999999;i++){
//先判断是不是对称数
if(i<100000){
//5位数 54321
if(!((i/10000 == i%10) && ((i/1000)%10 == (i%100)/10))){
continue;
}
}
//6位数 654321
else{
if(!((i/100000 == i%10) && (i/10000)%10 == (i%100)/10 && (i/1000)%10 == (i%1000)/100)){
continue;
}
}
//第六位
int sum = i/100000;
int temp = i%100000;
//第五位
sum += temp/10000;
temp = temp%10000;
//第4位
sum += temp/1000;
temp = temp%1000;
//第3位
sum += temp/100;
temp = temp%100;
//第2位
sum += temp/10;
temp = temp%10;
//第1位
sum += temp;
if(sum == n){
System.out.println(i);
}
}
定义一个变量,每次循环+1,输出结果就知道了