题目描述
若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。
例如:给定一个十进制数565656,将565656加656565(即把565656从右向左读),得到121121121是一个回文数。
又如:对于十进制数878787:
STEP1:878787+787878 = 165165165
STEP2:165165165+561561561 = 726726726
STEP3:726726726+627627627 = 135313531353
STEP4:135313531353+353135313531 = 488448844884
在这里的一步是指进行了一次NNN进制的加法,上例最少用了444步得到回文数488448844884。
写一个程序,给定一个NNN(2≤N≤10,N=162 \le N \le 10,N=162≤N≤10,N=16)进制数MMM(100100100位之内),
求最少经过几步可以得到回文数。
如果在303030步以内(包含303030步)不可能得到回文数,则输出Impossible!
输入输出格式
输入格式:
两行,分别是NNN,MMM。
输出格式:
STEP=ans
输入输出样例
输入样例#1:
10
87
输出样例#1:
STEP=4
#include<bits/stdc++.h>
using namespace std;
string a;
int sb[10005],qwq[10005],qaq[10005];
int len,n,t;
int main(){
cin>>n>>a;
len=a.size();
t=1;
for(int i=0