问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54。
解法:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int a, b, c, d, e, f, n;
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
// 五位数
for (int i = 10000; i < 100000; i++) {
a = i / 10000; // 万位数
b = i % 10000 / 1000; // 千位数
c = i % 1000 / 100; // 百位数
d = i % 100 / 10; // 十位数
e = i % 10; // 个位数
if (a == e && b == d && a + b + c + d + e == n) {
System.out.println(i);
}
}
// 六位数
for (int i = 100000; i < 1000000; i++) {
a = i / 100000; // 十万位数
b = i % 100000 / 10000; // 万位数
c = i % 10000 / 1000; // 千位数
d = i % 1000 / 100; // 百位数
e = i % 100 / 10; // 十位数
f = i % 10; // 个位数
if (a == f && b == e && c == d && a + b + c + d + e + f == n) {
System.out.println(i);
}
}
}
}