Palindrom Numbers

来源:互联网 发布:mac如何播放网页视频 编辑:程序博客网 时间:2024/05/16 02:08

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1078

本题主要在于处理好各种进制下数的存储,以及各种进制的转换并存入数组中,同时还要注意输出格式的问题初始化问题,将每个数进制转换后存入数组,再将其两边进行对比,是否相同,相同就是回文数。

代码:

#include<stdio.h>int main(){    int s[30];    int i,j,n,m,flag=1,len;    while(scanf("%d",&n)&&n)    {        int t[20]={0};        for(i=2;i<=16;i++)        {             flag=1;             m=n;             len=0;             while(m)             {                 s[len++]=m%i;                 m=m/i;             }             for(j=0;j<len/2;j++)             {                 if(s[j]!=s[len-1-j])                    flag=0;             }             if(flag)                t[i]=1;        }        flag=1;        for(i=2;i<=16;i++)        {            if(t[i]==1)                flag=0;        }        if(flag)        {            printf("Number %d is not a palindrom",n);        }        else        {            printf("Number %d is palindrom in basis",n);            for(i=2;i<=16;i++)            {                if(t[i]==1)                    printf(" %d",i);            }        }        printf("\n");    }    return 0;}


0 0
原创粉丝点击