1009-[NOIP1999]回文数_2021秋季算法入门班第一章习题:模拟、枚举、贪心 (nowcoder.com) 这道题的关键就是把不同进制的变成十进制的 #includeiostream#includecstringusing namespace std;int main(){ int n; s
1009-[NOIP1999]回文数_2021秋季算法入门班第一章习题:模拟、枚举、贪心 (nowcoder.com)
这道题的关键就是把不同进制的变成十进制的
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
string str;
cin>>str;
//进制转换
long long m=0;
for(int i=0;i<str.size();i++)//把一个不同进制的数变成十进制的
{
if(str[i]>'9') //对于一位数,十进制的数没有大于9的,那就是其他进制的,比如十六进制0A
m=m*n+str[i]-'A'+10;//10进制以上
else
m=m*n+str[i]-'0';
}
for(int i=0;i<30;i++)
{
long long x=m,y=0;
while(x)//判断回文串,可以用这个方法
{
y=y*n+x%n;
x/=n;
}
if(y==m)
{
cout<<"STEP="<<i;
return 0;
}
m+=y;
}
cout<<"Impossible!";
return 0;
}
Code over!
【文章出处:香港服务器 https://www.68idc.cn欢迎留下您的宝贵建议】