1. 程式人生 > >【藍橋杯】生成迴文數

【藍橋杯】生成迴文數

標題:生成迴文數

所謂迴文數就是左右對稱的數字,比如:
585,5885,123321…
當然,單個的數字也可以算作是對稱的。

小明發現了一種生成迴文數的方法:
比如,取數字19,把它與自己的翻轉數相加:
19 + 91 = 110,如果不是迴文數,就再進行這個過程:
110 + 011 = 121 這次是迴文數了。

200以內的數字中,絕大多數都可以在30步以內變成迴文數,只有一個數字很特殊,就算迭代了1000次,它還是頑固地拒絕迴文!

請你提交該頑固數字,不要填寫任何多餘的內容。


public class C_Main {
    private static int sum;

    public
static void main(String[] args) { // TODO Auto-generated method stub for (int i = 100; i < 200; i++) { sql(i); if (sum > 200) { System.out.println("大於" + sum + "的"); } } } private static void sql(int i) { // TODO Auto-generated method stub
if (!is(i)) { sum++; int num = i + dudu(i); sql(num); } else { System.out.print("迴文數"+i); System.out.println(" "+sum); sum = 0; } } private static boolean is(int originalNumber) { int
palindrome = 0; int origin = originalNumber; // get the palindrome while (originalNumber != 0) { palindrome = palindrome * 10 + originalNumber % 10; originalNumber /= 10; } return palindrome == origin; } private static int dudu(int i) { int p = 0; while (i != 0) { p = p * 10 + i % 10; i /= 10; } return p; } }

從最後結果就能看出來,只有196需要迭代好多好多次!

相關推薦

藍橋生成

標題:生成迴文數 所謂迴文數就是左右對稱的數字,比如: 585,5885,123321… 當然,單個的數字也可以算作是對稱的。 小明發現了一種生成迴文數的方法: 比如,取數字19,把它與自己的翻轉數相加: 19 + 91 = 110,如果不是迴文數,

藍橋 基礎練習 特殊

問題一:迴文數 問題描述   1221是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的,程式設計求所有這樣的四位十進位制數。 輸出格式   按從小到大的順序輸出滿足條件的四位十進位制數。 思路:分別求出這個四位數的每一個位上的數,然後做比較 #include&l

LeetCode題解9_(Palindrome-Number)

9_迴文數(Palindrome-Number) 文章目錄 9_迴文數(Palindrome-Number) 描述 解法一:轉化為字串的比較 思路 Java 實現 Python 實現 複雜

藍橋BASIC-8

問題描述   1221是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的,程式設計求所有這樣的四位十進位制數。 輸出格式   按從小到大的順序輸出滿足條件的四位十進位制數。 自己理解:for迴圈裡面先分別算出,個位,十位,百位,千位。若這個數為i 則 千=i/1000; 百=i%1000/

藍橋題解-特殊-BASIC-9

題目地址:特殊迴文數 問題描述 123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。      輸入一個正整數n, 程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 。 輸入格式 輸入一行,包含一個正整數n。 輸出格式

藍橋 演算法訓練

  若一個數(首位不為零)從左向右讀與從右向左讀都一樣,我們就將其稱之為迴文數。  例如:給定一個10進位制數56,將56加65(即把56從右向左讀),得到121是一個迴文數。  又如:對於10進位制數87:  STEP1:87+78 = 165 STEP2:165+561

藍橋數字

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

藍橋第七屆國賽C語言B組 2.湊平方(dfs+STL)

ble 一個 所有 mes char next memset target article 把0~9這10個數字,分成多個組,每個組恰好是一個平方數,這是能夠辦到的。比如:0, 36, 5948721 再比如:10985247361, 25, 63907840, 4, 28

LeetCode#9(Palindrome Number)

【LeetCode】#9迴文數(Palindrome Number) 題目描述 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: fals

LeetCode9. 結題報告 (C++)

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。示例 1:輸入: 121 輸出: true 示例 2:輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴文數。 示例 3:輸入: 10 輸出: fa

LeetCode9.

題目描述:     判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 演算法思想:轉換為字串,字串再轉置,判斷兩個字串是否相等 class Solution { public boolean isPalindrome(in

藍橋打印十字圖(圖形規律)

clas pan dos nbsp har name can data 圖形 題目描述 小明為某機構設計了一個十字型的徽標(並非紅十字會啊),如下所示: ..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$$

藍橋歷屆試題 發現環

ring bool include mes 16px 技術分享 div lte HR 題目:歷屆試題 發現環 問題描述   小明的實驗室有N臺電腦,編號1~N。原本這N臺電腦之間有N-1條數據鏈接相連,恰好構成一個樹形網絡。在樹形網絡上,任意兩臺電腦之間有唯一的路徑相連。 

藍橋第六屆國賽C語言B組 2.完美正方形(dfs)

spa else img IT bool break main LG fill 如果一些邊長互不相同的正方形,可以恰好拼出一個更大的正方形,則稱其為完美正方形。 歷史上,人們花了很久才找到了若幹完美正方形。比如:如下邊長的22個正方形2 3 4 6 7 8 12 13 14

藍橋第六屆國賽C語言B組 1.積分之迷(水題)

水題 urn class %d names 風鈴 需要 藍橋 std 小明開了個網上商店,賣風鈴。共有3個品牌:A,B,C。為了促銷,每件商品都會返固定的積分。 小明開業第一天收到了三筆訂單:第一筆:3個A + 7個B + 1個C,共返積分:315第二筆:4個A + 10個

生成

Description 若一個數(首位不為零)從左向右讀與從右向左讀都一樣,我們就將其稱之為迴文數。 例如:給定一個10進位制數56,將56加65(即把56從右向左讀),得到121是一個迴文數。 又如:對於10進位制數87: STEP1:87+78 = 165&n

藍橋基礎練習 矩形面積交

問題描述   平面上有兩個矩形,它們的邊平行於直角座標系的X軸或Y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。 輸入格式   輸入僅包含兩行,每行描述一個矩形。   在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值

藍橋-Minesweeper

解題思路:題目大意是說找‘.’ 的周圍有多少個‘*’這個周圍是八個方向。 可以給輸入的資料加上外圍。 #include<iostream>#include<algorithm>#include<cstring>using namespace &nbs

藍橋基礎訓練 完美的代價

問題描述   迴文串,是一種特殊的字串,它從左往右讀和從右往左讀是一樣的。小龍龍認為迴文串才是完美的。現在給你一個串,它不一定是迴文的,請你計算最少的交換次數使得該串變成一個完美的迴文串。   交換的定義是:交換兩個相鄰的字元   例如mamad   第一次交換 ad : m

藍橋運動員分組

運動員分組:     有N個人參加100米短跑比賽。跑道為8條,因此每組人數最多為8。     程式的任務是按照儘量使每組的人數相差最少的原則分組。例如:     N=8時,分成1組即可。     N=