回文數二(acm訓練)

2022-08-11 05:03:10 字數 1034 閱讀 7022

問題 1161: 【回文數(二)】

時間限制: 1sec 記憶體限制: 128mb 提交: 133 解決: 51

題目描述

若乙個數(首位不為零)從左向右讀與從右向左讀都一樣,我們就將其稱之為回文數。 

例如:給定乙個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<=16)進製數m,求最少經過幾步可以得到回文數。如果在30步以內(包含30步)不可能得到回文數,則輸出「impossible!」

輸入共兩行 

第一行為進製數n(2<=n<=16) 

第二行為n進製數m(0<=m<=maxlongint)

輸出共一行,為「step=經過的步數」或「impossible!」

樣例輸入

9

87

樣例輸出

step=6

個人參考源**:

#include

#include

using namespace std;

char v[16];int n;char m[10];

int value(char a)

void add(char *s1,char *s2)

if(carry)

else result[len]='\0';

strcpy(s1,result);

strrev(s1);

}bool ok(char *m)

int main()

if(count>30)cout<<"impossible!"ACM 判斷回文數

示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 從右向左讀,為 01 因此它不是乙個回文數。根據示例,我們可以得出幾個結論 1 負數一定不存在回...

演算法訓練 回文數

演算法訓練 回文數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 若乙個數 首位不為零 從左向右讀與從右向左讀都一樣,我們就將其稱之為回文數。例如 給定乙個10進製數56,將56加65 即把56從右向左讀 得到121是乙個回文數。又如 對於10進製數87 step1 87 78 165 ...

演算法訓練 回文數

若乙個數 首位不為零 從左向右讀與從右向左讀都一樣,我們就將其稱之為回文數。例如 給定乙個10進製數56,將56加65 即把56從右向左讀 得到121是乙個回文數。又如 對於10進製數87 step1 87 78 165 step2 165 561 726 step3 726 627 1353 st...