#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
bool pali(vector<int>& a)
{
vector<int>c = a;
reverse(a.begin(), a.end());
return a == c;
}
vector<int> sys_add(int n,vector<int>&a)
{
vector<int>c = a;
vector<int>d;
reverse(c.begin(), c.end());
int t = 0;
for (int i = 0; i < c.size(); i++)
{
t += c[i];
t += a[i];
d.push_back(t % n);
t /= n;
}
while (t > 0)
{
d.push_back(t % n);
t /= n;
}
return d;
}
int main()
{
int n;
cin >> n;
string s;
cin >> s;
vector<int>a;
for (int i =s.length()-1;i>=0;i--)
{
if (s[i] >= '0' && s[i] <= '9')
{
a.push_back(int(s[i] - '0'));
}
else
{
a.push_back(int(s[i] - 'A')+10);
}
}
int j = 1;
for (; j <= 30; j++)
{
a = sys_add(n, a);
if (pali(a) == 1)
{
cout << "STEP=";
cout << j << endl;
break;
}
else if (j == 30)
{
cout << "Impossible!" << endl;
}
}
}
洛谷P1015 [NOIP1999 普及组] 回文数
最新推荐文章于 2024-09-27 14:28:55 发布