BASIC-9 特殊回文數
問題描述
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;
}
}
閃現