洛谷 P1015 回文數

2021-09-16 18:41:29 字數 1124 閱讀 9665

題目描述

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

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

又如:對於十進位制數8787:

step1:8787+7878 = 165165

step2:165165+561561 = 726726

step3:726726+627627 = 13531353

step4:13531353+35313531 = 48844884

在這裡的一步是指進行了一次nn進製的加法,上例最少用了44步得到回文數48844884。

寫乙個程式,給定乙個nn(2 \le n \le 10,n=162≤n≤10,n=16)進製數mm(100100位之內),求最少經過幾步可以得到回文數。如果在3030步以內(包含3030步)不可能得到回文數,則輸出impossible!

輸入輸出格式

輸入格式:

兩行,分別是nn,mm。

輸出格式:

step=ans

輸入輸出樣例

輸入樣例#1:

1087

輸出樣例#1:

step=4

模擬過程

不用進行進製轉換

將字串轉為數字(注意十六進製制)存入陣列,相加時注意進製。

字串只需反轉一次即可。

#include

using namespace std;

intmain()

int num=1;

while

(num<=30)

for(

int i=

0;iif(a[len]

>

0) len+=1

;int flag;

for(

int i=

0;iif(flag==0)

break

; num+=1

;}if(num<=

30) cout<<

"step="

"impossible!"

}

洛谷P1015回文數

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

洛谷P1015(回文數

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

洛谷 P1015 回文數

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