简单题,检查给定的10进制数在2-16进制下是否是回文数 写好main框架,再回头填完两个简单子函数,一次提交AC 对回文有兴趣的可以看下 2744,一个关于回文子串的搜索问题 //2008-01-01 14:10:13 Accepted 1078 C++ 00:00.00 392K #include<stdio.h> struct num{ int s[17]; int len; }; bool checkpali(num a) { bool re=true; int i=1,j=a.len; while(i<=j) if(!(a.s[i++]==a.s[j--])) re=false; return re; } num baseconv(int n, int tobase) { num re; int len=0; while(n>=tobase) { re.s[++len] = n%tobase; n/=tobase; } re.s[++len] = n; re.len = len; return re; } int main() { num t; int i,j,n; bool flag,cre; while((scanf("%d",&n)!=EOF) && n!=0) { flag = false; printf("Number %d is ",n); for(i=2;i<=16;i++) { t = baseconv(n,i); cre = checkpali(t); if(flag && checkpali(t)) printf(" %d",i); else if(!flag && cre) { printf("palindrom in basis %d",i); flag = true; } } if(!flag) printf("not a palindrom/n"); else printf("/n"); } return 0; }