#include <stdio.h>
#include <stdlib.h>
int circle(int n,int d);
int main(int argc,char argv[]){
int num = 0,d = 0;
printf("请输入数和进制:");
scanf("%d %d",&num,&d);
printf("%d的%d进制是回文吗?%d\n",num,d,circle2(num,d));
//exit(0);
}
/**
*判断n的d进制数是否为回文
*@return 0不是回文,1是回文
*/
int circle(int n,int d){
int i = 0,size = 0;
int a[10] = {0};
int iscircle = 1;
while(n){
if(n % d != 0){
a[i++] = n % d;
}else{
a[i++] = 0;
}
n = n/d;
}
size = i;
for(i = 0;i <= size-1;i++,size--){
if(a[i] != a[size-1]){
iscircle = 0;
break;
}
}
return iscircle;
}
/**
*方式二
*/
int circle2(int n,int d){
int s = 0,m = n;
while(m){
s = s*d + m%d;
m /= d;
}
return s == n;
}