题目链接:http://exam.upc.edu.cn/problem.php?id=1243
这个题用到了回文加进制转化。其实做得多了就觉得很水。。。
#include<bits/stdc++.h> using namespace std; int main() { int n; while(~scanf("%d",&n),n){ int ans[16]={0},cnt=0; for(int i=2;i<=16;i++){ string s; int tmp=n; while(tmp){ s+=((tmp%i)+'0'); tmp/=i; } string t(s); reverse(t.begin(),t.end()); //cout<<s<<" "<<t<<endl; if(t==s){ ans[cnt++]=i; } } if(cnt){ printf("Number %d is palindrom in basis ",n); for(int i=0;i<cnt;i++){ printf("%d%c",ans[i],i==cnt-1?'\n':' '); } }else{ printf("Number %d is not a palindrom\n",n); } } return 0; }