展开全部
import java.util.Scanner;
public class Main{
static final int start = 10001;
static final int end = 999999;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t;
StringBuilder sb;
int sum;
boolean su;
while (sc.hasNextInt()) {
su = false;
t = sc.nextInt();
for (int i = start; i <= end; i++) {
sum = 0;
sb = new StringBuilder(String.valueOf(i));
if (sb.toString().equals(sb.reverse().toString())) {
for (int j = 0; j
sum += sb.charAt(j) - '0';
}
if (sum == t) {
su = true;
System.out.println(i);
}
}
}
if (!su) {
System.out.println(-1);
}
}
sc.close();
}
}
如果不能AC,优化一下: 对每个i,转为(字符或整数)数组e69da5e6ba903231313335323631343130323136353331333332643334,对数组从索引0到长度的一半遍历,判断对称位置是否相同,且各位数字和是否符合要求.