33 回文數**:問題描述 :
有一天,明明在做數學作業的時候,發現了一組很有趣的數字。例如1、11、121、1331等等。他發現這些數字都是左右對稱的,即不管你把這些數字從左讀到右還是從右讀到左,讀出來的數字都是一樣的。於是明明就把這個發現告訴了他爸爸。明明的爸爸是一名數學專家,他當然對這種型別的數字早有研究,他對明明說:「這些是回文數,它是一種特殊的數字現象,即這些數字的左右兩邊是對稱的。例如:121左右兩邊對稱,1331左右也是對稱的。」明明覺得這很有趣,接著問他爸爸還有什麼和這類回文數有關的好玩的東西,明明的爸爸於是就教了明明一種方法,這種方法是從任意乙個整數出發,經過某種計算,就可以得到乙個回文數。
這個方法如下:
例如首先給你乙個數19,然後把它的最低位與最高位交換(如果還有更多位,則次低位與次高位交換…),得到它的逆序數91,然後兩數相加,即19+91=110,我們得到110,因為110不是回文數,因此我們繼續上面的步驟,110+11=121,現在我們就得到了乙個回文數121。通過這種方法,我們就可以求得乙個與某乙個整數有關的回文數。
明明很聰明,很快就掌握了這個方法,但是他也發現了乙個問題,就是有時候計算乙個回文數,需要重複很多次以上的步驟,這使得明明很煩惱。於是他就求助於你,請你幫他寫乙個程式,通過程式來完成以上求回文數的過程。
明明的問題可以歸結為:給你乙個整數,通過上面敘述的求回文數的方法,求出回文數,並輸出求解過程。輸入資料保證該回文數小於2^31
輸入說明 :
你寫的程式要求從標準輸入裝置中讀入測試資料作為你所寫程式的輸入資料。標準輸入裝置中有多組測試資料,每組測試資料僅佔一行,每行有乙個整數n(10≤n≤10000),即要求回文數的那個整數。當n=0時,表示輸入結束。每組測試資料與其後一組測試資料之間沒有任何空行,第一組測試資料前面以及最後一組測試資料後面也都沒有任何空行。
輸出說明 :
對於每一組測試資料,你寫的程式要求計算出一組相應的運算結果,並將這一組運算結果作為你所寫程式的輸出資料依次寫入到標準輸出裝置中。每組運算結果為一行或多行的回文數求解過程,直到求出回文數為止。每行的格式如下a+b=c,其中a是原來的數,b是a的交換後的那個數,c是a+b的結果,詳細格式請參考輸出樣例。每組運算結果與其後一組運算結果之間沒有任何空行,第一組運算結果前面以及最後一組運算結果後面也都沒有任何空行。
注:通常,顯示屏為標準輸出裝置。 輸入範例 : 88 0 輸出範例 : 88+88=176 176+671=847
847+748=1595 1595+5951=7546 7546+6457=14003 14003+30041=44044
/*
t33 回文數
*/#include
#define max_size 100
intgetanticw
(int n)
;int
ispalin
(int n)
;int
main()
}return0;
}// 得到某數的逆序數
intgetanticw
(int n)
return res;
}// 判斷某數是否為回文數
intispalin
(int n)
;// 棧,儲存乙個數的各個位
while
(temp)
for(i = len; i >= len - len /
2; i--
)return1;
}
東華oj 高階題第90題 迴圈數
89 分糖果 問題描述 肖恩和派屈克是兄弟,他們從他們的父母那裡得到了很多糖果。每一塊糖具有乙個正整數的價值,孩子們希望分他們得到的糖果。首先,肖恩將這些糖果分成兩堆,並選擇一堆給派屈克。然後,派屈克將嘗試計算每堆的價值,其中每堆的價值是那堆糖果價值的總和,如果他覺得沒有平等的價值,他將開始哭了起來...
東華oj 高階題第11題
11 abc數字 問題描述 明明的爸爸是一位著名的數學家同時也是一位著名的數學啟蒙老師。他經常出一些簡單而有趣的數學題目來給剛剛接觸數學的小朋友做,培養他們對數學的興趣。一天,明明的爸爸想到了這樣乙個題目。如果有a b c三個1位的正整數,那麼按以下的方法構成2個三位數 第一種方法是a為百位,b為十...
東華oj 高階題第21題
21 回文質數 問題描述 因為151既是乙個質數又是乙個回文數 從左到右和從右到左是看一樣的 所以 151 號是回文質數。寫乙個程式來找出範圍 a,b 5 a b 100,000 間的所有回文質數 輸入說明 僅 1 行 二個整數 a 和 b 5 a b 100,000 輸出說明 輸出乙個回文質數的列...