思路:利用了StringBuilder的toString和reverse方法,通过题干给的五位和六位我们可以找出for循环的条件。然后通过循环使得数据+1,然后再通过reverse与原数据做对比,如果相等我就再把这个数据的每个数字相加,相加之后与给的n作比较,如果既是回文数,这个回文数的各位相加又等于n的话我们就输出。(TIPS:注意在相加的时候拿到的值是ACSALL值,所以需要-48)
代码:
import java.util.Scanner;
public class specialPalindrome {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i=10000;i<999999;i++){
int sum=0;
StringBuilder build = new StringBuilder(i+"");
if(build.toString().equals(build.reverse().toString())){
for (int k=0;k<build.toString().length();k++){
sum = sum+build.toString().charAt(k)-48;
}
}
if (sum == n){
System.out.println(i);
}
}
}
}