zoj1078

来源:互联网 发布:linux进入数据库命令 编辑:程序博客网 时间:2024/06/03 14:30

题目大意:

判断一个数从2进制到16进制是否是回文数

解题思路:

代码如下:

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int a[1000];int judge(int n, int i){  int mo=1, j=0, k, h, m;  m=n;  while(m!=0)  {    mo=m%i;    m/=i;    a[j]=mo;    j++;  }  for(k=0,h=j-1; k<j; k++,h--)    if(a[k]!=a[h]) return 0;  return 1;}int main(){  int n, i, sum, b[1000], j;  while(scanf("%d",&n)!=EOF&&n)  {    sum=0; j=0;    for(i=2; i<=16; i++)      if(judge(n,i))      {        sum++;        b[j]=i;        j++;      }    if(sum>0)    {      printf("Number %d is palindrom in basis",n);      for(i=0; i<sum; i++)        printf(" %d",b[i]);      printf("\n");    }    else      printf("Number %d is not a palindrom\n",n);  }  return 0;}
0 0