给一个数
问在2~16进制下是否是回文
然后就没有然后了
注vector 可以直接赋值给另一个 如b=a
也可以直接比是否相等 a==b
reverse(a.begin(),a.end()) 倒转vector
#include<bits/stdc++.h>
using namespace std;
int n;
vector<int>a,b;
bool ans[20];
void Gao()
{
int ok=0;
memset(ans,0,sizeof(ans));
for (int i=2;i<=16;i++)
{
a.clear();
b.clear();
int t=n;
while (t!=0)
{
a.push_back((t%i));
t/=i;
}
b=a;
reverse(a.begin(),a.end());
if (a==b)
{
ans[i]=1;
ok=1;
}
}
if (!ok)
{
printf("Number %d is not a palindrom\n",n);
}
else
{
printf("Number %d is palindrom in basis",n);
for (int i=2;i<=16;i++)
if (ans[i])
cout<<" "<<i;
cout<<endl;
}
}
int main()
{
// freopen("a.in","r",stdin);
while (cin>>n && n)
Gao();
return 0;
}