藍橋杯 回文數(模擬)

2021-07-29 06:45:33 字數 1143 閱讀 2729

演算法訓練 回文數  

時間限制:1.0s   記憶體限制:256.0mb

問題描述

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

例如:給定乙個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(其中16進製制數字為0-9與a-f),求最少經過幾步可以得到回文數。

如果在30步以內(包含30步)不可能得到回文數,則輸出「impossible!」

輸入格式

兩行,n與m

輸出格式

如果能在30步以內得到回文數,輸出「step=xx」(不含引號),其中xx是步數;否則輸出一行」impossible!」(不含引號)

樣例輸入 9

87樣例輸出

step=6

tips;大數模擬題,注意細節

#include#include#include#include#includeusing namespace std;

int n,step;

string m;

int judge(string s)//判斷回文數

else

} return sum;

}string inttostring(long long sum)//整形轉字串

else s.push_back('0'+tmp);

sum/=n;

} if(sum>=10)

else if(sum) s.push_back('0'+sum);

reverse(s.begin(),s.end());

return s;

}int main()

{ cin>>n>>m;

while(1)

{ if(judge(m)){

cout<<"step="<=30){

cout<<"impossible!"<

回文數(藍橋杯)

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

藍橋杯 回文數

問題描述 1221是乙個非常特殊的數,它從左邊讀和從右邊讀是一樣的,程式設計求所有這樣的四位十進位制數。輸出格式 按從小到大的順序輸出滿足條件的四位十進位制數。回文數判定模板 bool ishws int num return ans num include include include incl...

藍橋杯特殊回文數

基礎練習 特殊回文數 時間限制 1.0s 記憶體限制 512.0mb 問題描述 123321是乙個非常特殊的數,它從左邊讀和從右邊讀是一樣的。輸入乙個正整數n,程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 輸入格式 輸入一行,包含乙個正整數n。輸出格式 按從小到大的順序輸出滿足條...