算法入门经典 7.1.4 (双基回文数)

来源:互联网 发布:max30100中文数据手册 编辑:程序博客网 时间:2024/06/18 16:38

代码:

#include <stdio.h>#include <string.h>int fun(int x,int n) //将十进制的x转化为n进制,判断是否为回文数{int a[100],b[100];int k=0;for(int i=0;;i++){a[i]=x%n;  x=x/n;if(x==0) break;}k=i;int j;for(j=k,i=0;j>=0;i++,j--)b[i]=a[j];b[k+1]='\0';   //求出x的n进制数int flag=1;for (i=0;;i++){if(i>(k/2)) break;if (b[i]!=b[k-i]){flag=0;break;}}if(flag) return 1; //是n进制的回文数else return 0;   //不是}int main(){int n,k,flag,i;while (scanf("%d",&n)==1){for(;;n++)      //枚举,找出最小的{k=0;flag = 0;for(i=2;i<=10;i++){if(fun(n,i)) k++;if(k>=2){flag=1; break;}}if(flag){ printf("%d\n",n); break;}}}return 0;}


原创粉丝点击