【題目描述】
若乙個數(首位不為零)從左向右讀與從右向左讀都是一樣,我們就將其稱之為回文數。例如:給定乙個 10進製數 56,將 56加 65(即把56從右向左讀),得到 121是乙個回文數。又如,對於10進製數87,
step1: 87+78= 165 step2: 165+561= 726
step3: 726+627=1353 step4:1353+3531=4884
在這裡的一步是指進行了一次n進製的加法,上例最少用了4步得到回文數4884。
寫乙個程式,給定乙個n(2<n<=10或n=16)進製數 m.求最少經過幾步可以得到回文數。如果在30步以內(包含30步)不可能得到回文數,則輸出「impossible」 。
【輸入】
給定乙個n(2<n<=10或n=16)進製數m。
【輸出】
最少幾步。如果在30步以內(包含30步)不可能得到回文數,則輸出「impossible」。
【輸入樣例】
9 87
【輸出樣例】
6
#include
using
namespace std;
#define n 100005
int a[n]
, b[n]
, n;
char s[n]
;bool
huiwenshu
(int len)
return
true;}
void
fanzhuan
(int len)
intadd
(int len)}}
return len;
}int
main()
for(
int i=
0; i<=
30; i++)if
(huiwenshu
(len))}
cout <
<
"impossible"
;return0;
}
本題並不需要進行進製轉換,進製的考慮在a+b處注意逢n進一即可!這是本題的技巧! 1309 例1 6 回文數 Noip1999
1309 例1.6 回文數 noip1999 時間限制 1000 ms 記憶體限制 65536 kb 提交數 7074 通過數 2624 題目描述 若乙個數 首位不為零 從左向右讀與從右向左讀都是一樣,我們就將其稱之為回文數。例如 給定乙個 10進製數 56,將 56加 65 即把56從右向左讀 得...
52 回文平方數
52 回文平方數 問題描述 回文數是指從左向右念和從右向左唸都一樣的數。如12321就是乙個典型的回文數。給定乙個進製b 2 輸入說明 共一行,乙個單獨的整數b b用十進位制表示,比如18 輸出說明 每行兩個數字,第二個數是第乙個數的平方,且第二個數是回文數。注意 輸出時,這兩個數都應該以b進製表示...
1282 回文數猜想
problem description 乙個正整數,如果從左向右讀 稱之為正序數 和從右向左讀 稱之為倒序數 是一樣的,這樣的數就叫回文數。任取乙個正整數,如果不是回文數,將該數與他的倒序數相加,若其和不是回文數,則重複上述步驟,一直到獲得回文數為止。例如 68變成154 68 86 再變成605 ...