这个题目只是需要转变进制就好了
#include<stdio.h> #include<string.h> int F(int n,int m){ int i,a[35],s=0; while(n!=0){ a[s]=n%m; n/=m; s++; } for(i=0;i<=(s-1)/2;i++) if(a[i]!=a[s-1-i]) return 3; return 1; } int main(){ int s,n,i,a[18]; while(scanf("%d",&n),n!=0){ s=0; for(i=2;i<=16;i++) if(F(n,i)==1){ a[i]=1; s++; } if(s==0) printf("number %d is not a palindrom\n",n); else{ printf("number %d is palindrom in basis",n); for(i=2;i<=16;i++) if(a[i]==1){ printf(" %d",i); a[i]=0; } printf("\n"); } } return 0; }