回文数
时间限制:1秒 内存限制:256M
【问题描述】
若一个数(首位不为 0 )从左向右读与从右向左读都一样,我们就将其称之为回文数。
一个任意整数,可以通过若干次与反转数相加后得到一个回文数,例如:给定一个十进制数 56,将 56 加 65 (即把 56 从右向左读),得到 121 是一个回文数。又如:对于十进制数 87,经过 4 步可得到回文数 4884:
STEP1: 87 + 78 = 165
STEP2: 165 + 561 = 726
STEP3: 726 + 627 = 1353
STEP4: 1353 + 3531 = 4884
现在请你写一个程序,给定一个 \(N\) 进制数 \(M\),求最少经过几步可以得到回文数。如果在30步以内(包括30步)不可能得到回文数,则输出"Impossible!"
【输入格式】
第 1 行:包含两个数据,第一个是 \(N\),第 2 个是 \(M\)。 注意,当 \(N\) 大于 10 时,输入的 \(M\) 中大于 10 的位数用大写字母 A,B,C…… 等表示。
【输出格式】
如果在不超过 30 步内能得到回文数,则输出最少的步数,否则输出"Impossible!"。
【输入输出样例】
Input
9 87
Output
STEPS=6
【数据限制】
\(100\%\) 的数据满足 ,\(M\) 的长度不超过 10;\(N\) 不超过 16。
【来源】
Mr.he