[藍橋] 基礎練習 特殊回文數
阿新 • • 發佈:2019-02-02
練習 ++ scan can 特殊 n) 條件 tin ann
問題描述
123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。
輸入一個正整數n, 編程求所有這樣的五位和六位十進制數,滿足各位數字之和等於n 。
輸入格式
輸入一行,包含一個正整數n。
輸出格式
按從小到大的順序輸出滿足條件的整數,每個整數占一行。
樣例輸入
52
樣例輸出
899998
989989
998899
數據規模和約定
1<=n<=54。
方法1:
1 import java.util.Scanner; 2 3 public class Main { 4 public static voidmain(String[] args) { 5 Scanner scanner = new Scanner(System.in); 6 int n = scanner.nextInt(); 7 long sum; 8 for(int i = 1;i <= 9;i++) 9 for(int j = 0;j <= 9;j++) 10 for(int k = 0;k <= 9;k++) 11 if(2 * (i + j) + k == n) {12 sum = i * 10001 + j * 1010 + k * 100; 13 System.out.println(sum); 14 } 15 for(int i = 1;i <= 9;i++) 16 for(int j = 0;j <= 9;j++) 17 for(int k = 0;k <= 9;k++) 18 if(2 * (i + j + k) == n) {19 sum = i * 100001 + j * 10010 + k * 1100; 20 System.out.println(sum); 21 } 22 } 23 }
方法2:
1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner scanner = new Scanner(System.in); 6 int n = scanner.nextInt(); 7 int[] arr = new int[6]; 8 for(int i=11111;i<=99999;i++) { 9 int t = 0; 10 int s = i; 11 while(s != 0) { 12 arr[t++] = s % 10; 13 s /= 10; 14 } 15 int sum = 0; 16 for(int j = 0;j < 5;j++) { 17 sum += arr[j]; 18 } 19 if(sum == n) { 20 int j; 21 for(j = 0;j < 3;j++) { 22 if(arr[j] != arr[4-j]) 23 break; 24 } 25 if(j == 3) { 26 for(int k = 0;k < 5 ;k++) { 27 System.out.print(arr[k]); 28 } 29 System.out.println(); 30 } 31 } 32 } 33 for(int i = 111111;i <= 999999;i++) { 34 int t = 0; 35 int s = i; 36 while(s != 0) { 37 arr[t++] = s % 10; 38 s /= 10; 39 } 40 int sum = 0; 41 for(int j = 0;j < 6;j++) { 42 sum += arr[j]; 43 } 44 if(sum == n) { 45 int j; 46 for(j = 0;j < 4;j++) { 47 if(arr[j] != arr[5-j]) 48 break; 49 } 50 if(j == 4) { 51 for(int k = 0;k < 6 ;k++) { 52 System.out.print(arr[k]); 53 } 54 System.out.println(); 55 } 56 } 57 } 58 } 59 }
[藍橋] 基礎練習 特殊回文數