问题描述
123321 是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54。
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 10000; i <= 999999; i++)
{
int a = i;
int sum = 0;
int ans = 0;
while (a > 0)
{
int b = a % 10;//取个位
sum = sum * 10 + b;//求回文反转的数
ans = ans + b;//求每位的和
a = a / 10;
}
if (sum == i && n == ans)
System.out.println(i);
}
}
//嘿嘿 小小类库而已
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 10000; i <= 999999; i++)
{
StringBuilder a = new StringBuilder(String.valueOf(i));
StringBuilder b = new StringBuilder(a).reverse();
if (a.toString().equals(b.toString()))
{
int sum = 0;
int x = i;
while (x > 0)
{
sum = sum + x % 10;
x = x / 10;
}
if (sum == n)
System.out.println(i);
}
}
}
//打表 用布尔型的数组来存就好了
boolean shu[] = new boolean[10000000];
for (int i = 10000; i <= 999999; i++)
{
int a = i;
int sum = 0;
while (a > 0)
{
int b = a % 10;
sum = sum * 10 + b;
a = a / 10;
}
if (sum == i)
shu[i] = true;
}
boolean shu[] = new boolean[10000000];
for (int i = 10000; i <= 999999; i++)
{
StringBuilder a = new StringBuilder(String.valueOf(i));
StringBuilder b = new StringBuilder(a).reverse();
if (a.toString().equals(b.toString()))
{
shu[i] = true;
}
}