Vijos訓練計畫 1304回文數

2022-02-28 23:15:46 字數 1346 閱讀 1508

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

例如:給定乙個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(2<=n<=10或n=16)

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

共一行第一行為「step=」加上經過的步數或「impossible!」

9

87

copy

step=6
copy

各個測試點1s

noip1999提高組第2題

1 #include 2 #include 

3 #include 4 #include 5 #include 6

7using

namespace

std;89

intmain()

10,m_rev[40]=;

14 cin>>n>>m;

15int l=strlen(m);

16for(int i=l-1;i>=0;i--)

1723

int flag=1;24

for(int i=0;i<=l/2;i++)

25if(m_n[i]!=m_n[l-i-1

])26

30if(flag==1)31

35int step=0;36

while(1)37

51}52 step++;

53int flag=1;54

for(int i=0;i<=l/2;i++)

55if(m_n[i]!=m_n[l-i-1

])56

60if(flag==0&&step>30)61

65else

if(flag==1)66

70}71return0;

72 }

view code

因為沒加「=」而wa巨多次

因為impossible的i沒有大寫而wa

題是水題 但細心才能對啊...

vijos1304 回文數《模擬》

好久沒寫部落格了,最近一直打不出題,感覺自己是廢了,今天做了一道模擬水題,但還是半天沒過,後來才發現是忘記考虐10以上的進製是帶有字母的,然後就處理字母去了。接著就發現了一系列shabby一樣的操作。這道題只有幾個注意點 1.要考慮到10以上進製在輸入是帶有字母的 2.這道題並不用把最後的答案輸出來...

演算法訓練 ALGO14 回文數

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

8633回文劃分

時間限制 1000ms 記憶體限制 1000k 我們說乙個字串是回文串,那麼意味著這個串從兩邊讀起來的字母都是一樣的。例如racecar是回文串,然而fastcar則不是。對乙個串的劃分意思是將乙個串劃分為若干個部分。例如,racecar可以劃分為race 和car兩部分。給出乙個串,要把這個串劃分...