洛谷P1015(回文數

2021-10-08 07:10:23 字數 1231 閱讀 4001

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

例如:給定乙個十進位制數 56,將 56 加 65(即把 5656 從右向左讀),得到 121 是乙個回文數。

又如:對於十進位制數 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(100 位之內),求最少經過幾步可以得到回文數。如果在 30 步以內(包含 30 步)不可能得到回文數,則輸出 impossible!。

兩行,分別是 n,m。

如果能在 30 步以內得到回文數,輸出格式形如 step=ans,其中 ans 為最少得到回文數的步數。

否則輸出 impossible!。

看到題目中說的有100位資料,再來個30次進製,多少個long long才放得下啊,所以我立馬選擇建立乙個130位的陣列,去儲存,其實也不是很難。

talking is cheap,show you my code.

#include

#include

#include

using

namespace std;

int num[

130]

;int

main()

else

}int step =0;

int i =0;

int j = size -1;

while

(j > i)

for(

int ii =

0;ii <

30;ii++

) begin++

; end--;}

if(flag)

step++

;int mun[

130]

;for

(int ij =

0;ij < size;ij++

)int t =0;

for(

int k =

0;k < size;k++)if

(t)}

cout <<

"impossible!"

;return0;

}

洛谷P1015回文數

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

洛谷 P1015 回文數

題目描述 若乙個數 首位不為零 從左向右讀與從右向左讀都一樣,我們就將其稱之為回文數。例如 給定乙個十進位制數5656,將5656加6565 即把5656從右向左讀 得到121121是乙個回文數。又如 對於十進位制數8787 step1 8787 7878 165165 step2 165165 5...

洛谷 P1015 回文數

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