1. 程式人生 > >2016藍橋杯 歷屆往題——迴文數字

2016藍橋杯 歷屆往題——迴文數字

歷屆往題   迴文數字 問題描述   觀察數字:12321,123321 都有一個共同的特徵,無論從左到右讀還是從右向左讀,都是相同的。這樣的數字叫做:迴文數字。

  本題要求你找到一些5位或6位的十進位制數字。滿足如下要求:
  該數字的各個數位之和等於輸入的整數。 輸入格式   一個正整數 n (10<n<100), 表示要求滿足的數位和。 輸出格式   若干行,每行包含一個滿足要求的5位或6位整數。
  數字按從小到大的順序排列。
  如果沒有滿足條件的,輸出:-1 樣例輸入 44 樣例輸出 99899
499994
589985
598895
679976
688886
697796
769967
778877
787787
796697
859958
868868
877778
886688
895598
949949
958859
967769
976679
985589
994499 樣例輸入 60 樣例輸出 -1
程式碼:
import java.util.Scanner;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		int num = 0;
		for (int i = 10000; i < 1000000; i++) {
			if (is_huiwen(i)) {
				if (f(i) == n) {
					System.out.println(i);
					num++;
				}
			}
		}
		if(num==0){
			System.out.println(-1);
		}
	}

	private static int f(int b) {
		// TODO Auto-generated method stub
		int sum = 0;
		int t;
		int m = b;
		//算前兩位數的和
		for (int i = 0; i < 2; i++) {
			t = m % 10;
			sum += t;
			m /= 10;
		}
		if (b < 100000) {
			sum *= 2;
			sum += (m % 10);
		} else {
			sum += (m % 10);
			sum *= 2;
		}
		return sum;
	}

	private static boolean is_huiwen(int b) {
		// TODO Auto-generated method stub
		String s = String.valueOf(b);      //數字轉換為字串
		char[] c = s.toCharArray();        //字串轉換為字元陣列
		for (int i = 0, j = s.length() - 1; i < s.length(); i++, j--) {
			if (i == j || j < i)
				break;
			if (c[i] != c[j])
				return false;
		}
		return true;
	}

}



總結:比較好做的一道題,分解出求迴文數演算法和各位數字之和的演算法即可。

相關推薦

2016藍橋 歷屆——數字

歷屆往題   迴文數字 問題描述   觀察數字:12321,123321 都有一個共同的特徵,無論從左到右讀還是從右向左讀,都是相同的。這樣的數字叫做:迴文數字。   本題要求你找到一些5位或6

藍橋 歷屆-數字

  歷屆試題 迴文數字  時間限制:1.0s   記憶體限制:256.0MB問題描述  觀察數字:12321,123321 都有一個共同的特徵,無論從左到右讀還是從右向左讀,都是相同的。這樣的數字叫做:迴文數字。  本題要求你找到一些5位或6位的十進位制數字。滿足如下要求: 

Java高職藍橋校內選拔字串

9、 (14分) 有一種特殊形式的字串,其正反序相同,被稱為“迴文字串”。例如LeveL就是一個迴文字串。 輸入:字串 輸出:Yes或者No 說明:如輸出Yes,說明輸入的字串是一個迴文字串       輸出No,說明輸入的字串不是一個迴文字串       請使用遞迴演算

藍橋練手之數字

觀察數字:12321,123321 都有一個共同的特徵,無論從左到右讀還是從右向左讀,都是相同的。這樣的數字叫做:迴文數字。     本題要求你找到一些5位或6位的十進位制數字。滿足如下要求:     該數字的各個數位之和等於輸入的整數。 【輸入格式】 一個正整數 n(10

藍橋 基礎練習 特殊

問題描述   123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。   輸入一個正整數n, 程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 。 輸入格式   輸入一行,包含一個正整數n。 輸出格式   按從小到大的順序輸出滿足條件的整數

藍橋:練習題:

package lanqiaobei; import java.util.Scanner; /* 練習題:迴文數 一個正整數,如果交換高低位以後和原數相等,那麼稱這個數為迴文數。比如 121,2332 都是迴文數,13,456713,4567 不是迴文數。 任意一個正整數,如果其不是迴文數,將該

藍橋 OJ BASIC-8

問題描述   1221是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的,程式設計求所有這樣的四位十進位制數。 輸出格式   按從小到大的順序輸出滿足條件的四位十進位制數。 Think:  用陣

藍橋 歷屆 四平方和

題目描述:四平方和定理,又稱為拉格朗日定理:每個正整數都可以表示為至多4個正整數的平方和。如果把0包括進去,就正好可以表示為4個數的平方和。比如:5 = 0^2 + 0^2 + 1^2 + 2^27 =

藍橋:BASIC-8

問題描述:   1221是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的,程式設計求所有這樣的四位十進位制數。 輸出格式:   按從小到大的順序輸出滿足條件的四位十進位制數。 題解: 思路:題目規定為四位數的數字,就大大降低了難度,可以用遍歷的思想,採用for迴圈,根據條件判斷迴

藍橋BASIC-9 特殊

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

藍橋 基礎練習 特殊

 基礎練習 特殊迴文數   時間限制:1.0s   記憶體限制:512.0MB 問題描述   123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。   輸入一個正整數n, 程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 。

藍橋 基礎練習 特殊數 高效演算法

  基礎練習 特殊迴文數   時間限制:1.0s   記憶體限制:512.0MB 問題描述   123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。   輸入一個正整數n,

備戰藍橋(真)第五屆第三素數)

                                   迴文素數10301是個5位的素數。它有個特點,把數字倒過來還是它本身,具有這樣特徵的素數,我們稱之為:迴文素數。105011060111311這些都是5位的迴文素數。請你計算一下,像這樣的5位數的迴文素數,

歷屆藍橋試題- 數字(C語言)

問題描述   觀察數字:12321,123321 都有一個共同的特徵,無論從左到右讀還是從右向左讀,都是相同的。這樣的數字叫做:迴文數字。 本題要求你找到一些5位或6位的十進位制數字。滿足如下要求:   該數字的各個數位之和等於輸入的整數。 輸入格式   一個正整數 n (10<n

藍橋 歷屆試題 數字

歷屆試題 迴文數字  時間限制:1.0s   記憶體限制:256.0MB問題描述  觀察數字:12321,123321 都有一個共同的特徵,無論從左到右讀還是從右向左讀,都是相同的。這樣的數字叫做:迴文

2016藍橋省賽java C組第十 --密碼脫落

暑假以來刷藍橋杯題,實在被暴力所折服,終於碰到一眼前一亮的題~~~ 第一篇線上的部落格,開寫~~~ 密碼脫落 X星球的考古學家發現了一批古代留下來的密碼。 這些密碼是由A、B、C、D 四種植物的種子串成的序列。 仔細分析發現,這些密碼串當初應該是前後對稱的(也就是我們說的映

藍橋 JAVA 數字

問題描述   1221是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的,程式設計求所有這樣的四位十進位制數。 輸出格式   按從小到大的順序輸出滿足條件的四位十進位制數。 import ja

藍橋數字

題目描述 觀察數字:12321,123321  都有一個共同的特徵,無論從左到右讀還是從右向左讀,都是相同的。這樣的數字叫做:迴文數字。  本題要求你找到一些5位或6位的十進位制數字。滿足如下要求:  該數字的各個數位之和等於輸入的整數。  輸入 一個正整數  n  (

藍橋數字

#include <iostream> #include <algorithm> #include <vector> #include <sstream> #include <math.h> using

煤球數目 ,2016藍橋試題,第二

煤球數目  有一堆煤球,堆成三角稜錐形。具體: 第一層放1個,  第二層3個(排列成三角形), 第三層6個(排列成三角形), 第四層10個(排列成三角形), ....  如果一共有100層,共有多少個煤球?   請填表示煤球總數目的數字。  注意:你提交的應該是一個整數,不