• 回文数


    题目描述

    我们把从左往右和从右往左念起来相同的数字叫做回文数。例如,75457就是一个回文数。
    当然某个数用某个进制表示不是回文数,但是用别的进制表示可能就是回文数。
    例如,17是用十进制表示的数,显然它不是一个回文数,但是将17用二进制表示出来是10001,显然在二进制下它是一个回文数。
    现在给你一个用十进制表示的数,请你判断它在2~16进制下是否是回文数。

    输入

    输入包含多组测试数据。每组输入一个用十进制表示的正整数n(0<n<50000),当n=0时,输入结束。

    输出

    对于每组输入,如果n在2~16进制中的某些进制表示下是回文数,则输出“Number i is palindrom in basis ”,在后面接着输出那些进制。其中i用n的值代替,后面输出的进制中,每两个数字之间空一个。
    如果n在2~16进制的表示下都不为回文数,则输出“Number i is not a palindrom”,其中i用n的值代替。

    样例输入

    17
    19
    0

    样例输出

    Number 17 is palindrom in basis 2 4 16
    Number 19 is not a palindrom
     1 #include <stdio.h>
     2  
     3  
     4 int judge(int n,int i)
     5 {
     6     int a[50];
     7     int g,num=0;
     8     while(n)
     9     {
    10         a[num++]=n%i;
    11         n/=i;
    12     }
    13     int t=1;
    14     for(g=0;g<num/2;g++)
    15     {
    16         if(a[g]!=a[num-1-g]) 
    17         {
    18             t=0;
    19             break;
    20         }
    21     }
    22     return t;
    23 }
    24  
    25 int main()
    26 {
    27     int n;
    28     while(scanf("%d",&n),n)
    29     {
    30         int a[20]={0};
    31         int i,t=0;
    32         for(i=2;i<=16;i++)
    33         {
    34             if(judge(n,i))
    35             {
    36                 t=1;
    37                 a[i]=1;
    38             } 
    39         }
    40         if(t)
    41         {
    42             printf("Number %d is palindrom in basis",n);
    43             for(i=2;i<=16;i++)
    44             {
    45                 if(a[i]) printf(" %d",i);
    46             }
    47             printf("
    ");
    48         }
    49         else printf("Number %d is not a palindrom
    ",n);
    50     }
    51     return 0;
    52 }
  • 相关阅读:
    hdu 5965 扫雷
    51nod 1441 士兵的数字游戏 (素数处理
    51nod 1453抽彩球
    51nod 1255 字典序最小的子序列
    codeforces 948A
    Splay 伸展树 bzoj3224 bzoj3223
    2016-2017 ACM-ICPC, NEERC, Northern Subregional Contest C(gym/101142 C)
    2016-2017 ACM-ICPC, NEERC, Northern Subregional Contest F(gym/101142 F)
    2016-2017 ACM-ICPC, NEERC, Northern Subregional Contest G(gym/101142 G)
    Educational Codeforces Round 32 E 巨型背包
  • 原文地址:https://www.cnblogs.com/jiamian/p/10652551.html
Copyright © 2020-2023  润新知