1. 程式人生 > 其它 >試題 基礎練習 特殊迴文數

試題 基礎練習 特殊迴文數

技術標籤:java

試題 基礎練習 特殊迴文數

問題描述
  123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。
  輸入一個正整數n, 程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 。
輸入格式
  輸入一行,包含一個正整數n。
輸出格式
  按從小到大的順序輸出滿足條件的整數,每個整數佔一行。
樣例輸入
52
樣例輸出
899998
989989
998899
資料規模和約定
  1<=n<=54。

 import java.util.ArrayList;
import java.util.Collections;
import java.
util.Scanner; public class jichu9 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int m=sc.nextInt(); ArrayList<Integer> list= new ArrayList<Integer>(); for(int i=1;i<=9;i++) { for(int j=1;j<=9;j++) { for(int k=1;k<=9;k++) { if(2*i+2
*j+k==m) list.add(i*10000+j*1000+k*100+j*10+i); else if(2*i+2*j+2*k==m) list.add(i*100000+j*10000+k*1000+k*100+j*10+i); } } } Collections.sort(list); for(int n=0;n<list.size();n++) System.out.print(list.get(n)+"\n"); } }

二一種解決方法

 public static void main(String[] args) {
		// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in); int m=sc.nextInt(); int[] a=new int[6]; for(int i=10000;i<=999999;i++) { if(i<=99999) { a[0]=i/10000; a[1]=(i%10000)/1000; a[2]=((i%10000)%1000)/100; a[3]=(((i%10000)%1000)%100)/10; a[4]=(((i%10000)%1000)%100)%10; if((a[0]==a[4])&&(a[1]==a[3])&&(a[0]+a[1]+a[2]+a[3]+a[4]==m)) { System.out.println(i); } } else { a[0]=i/100000; a[1]=(i%100000)/10000; a[2]=((i%100000)%10000)/1000; a[3]=(((i%100000)%10000)%1000)/100; a[4]=((((i%100000)%10000)%1000)%100)/10; a[5]=((((i%100000)%10000)%1000)%100)%10; if((a[0]==a[5])&&(a[1]==a[4])&&(a[2]==a[3])&&(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]==m)) System.out.println(i); } } }