1. 程式人生 > >藍橋杯:基礎練習 特殊迴文數

藍橋杯:基礎練習 特殊迴文數

基礎練習 特殊迴文數   時間限制:1.0s   記憶體限制:512.0MB 問題描述   123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。
  輸入一個正整數n, 程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 。 輸入格式   輸入一行,包含一個正整數n。 輸出格式   按從小到大的順序輸出滿足條件的整數,每個整數佔一行。 樣例輸入 52 樣例輸出 899998
989989
998899 資料規模和約定   1<=n<=54。 解題思路:設定迴圈(10000->1000000),獲取到每位數的和,並與輸入的數number進行比較。將迴圈變數轉換為字元陣列,進行逆序,得到新的字串,並與原字串進行比較(若為真則為迴文數)。若比較結果均為真,則輸出此迴文數。
import java.util.Scanner;

public class Main{

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int number = sc.nextInt();
		int i,j,len,n;
		int sumt = 0;
		char []array = new char[6];
		String strorigin = "";
		String strturn = "";
		StringBuilder stbturn = new StringBuilder();
		for(i = 10000; i < 1000000; i++){
			n = i;
			strorigin = Integer.toString(i);
			array = strorigin.toCharArray();
			while(n > 0){
				sumt += n % 10;
				n = n / 10;
			}
			len = array.length;
			for(j = len - 1; j >= 0; j--){
				stbturn.append(array[j]);
			}
			strturn = stbturn.toString();
			if(strorigin.equals(strturn)){
				if(sumt == number){
					System.out.println(i);
				}
			}
			stbturn = new StringBuilder();
			sumt = 0;
		}
	}
}