• ZOJ Problem Set


    ZOJ Problem Set - 1078
    Palindrom Numbers

    Time Limit: 2 Seconds                                     Memory Limit: 65536 KB                            

    Statement of the Problem

    We say that a number is a palindrom if it is the sane when read from left to   right or from right to left. For example, the number 75457 is a palindrom.

    Of course, the property depends on the basis in which is number is represented.   The number 17 is not a palindrom in base 10, but its representation in base   2 (10001) is a palindrom.

    The objective of this problem is to verify if a set of given numbers are palindroms   in any basis from 2 to 16.

    Input Format

    Several integer numbers comprise the input. Each number 0 < n < 50000   is given in decimal basis in a separate line. The input ends with a zero.

    Output Format

    Your program must print the message Number i is palindrom in basis where I   is the given number, followed by the basis where the representation of the number   is a palindrom. If the number is not a palindrom in any basis between 2 and   16, your program must print the message Number i is not palindrom.

    Sample Input

    17
      19
      0

    Sample Output

    Number 17 is palindrom in basis 2 4 16
      Number 19 is not a palindrom

    AC代码:

    #include<iostream>
    #include<stdio.h>
    #include<string>
    using namespace std;
    int a[1000];
    bool isp(int len)
    {
     int k=(len)/2;
     for(int i=0;i<k;i++)
     {
      if(a[0+i]!=a[len-1-i])
        return false;
     }
     return true;
    }
    int main()
    {
     int num;
     while((cin>>num)&&num)
     {
      string re="";
      for(int i=2;i<=16;i++)
      {
       int temp=num;
       int len=0;
       while(temp)
       {
        a[len++]=temp%i;
        temp/=i;
       }
       if(isp(len))
       {
       re+=i; 
       }
      }
      if(re!="")
       {
        cout<<"Number "<<num<<" is palindrom in basis";
        for(int i=0;i<re.length();i++)
        {
         cout<<" "<<(int)re[i];
        }
        cout<<endl;
       }
       else
       {
        cout<<"Number "<<num<<" is not a palindrom"<<endl;
       }
     }
    }

  • 相关阅读:
    C#的拓展方法
    敲代码
    获取GridView的rowdata
    C#为控件增加或删除委托
    ul嵌套ul IE7下空白行解决方案
    C#设置日期为指定的月份和日子
    web多选上传插件Uploadify
    如何通过key获取value值,键找值!多线程单利模式 3月15日第三版 希望各位路过的高手批评指正 给出更优秀的代码方便后来人
    IE条件语句,IE hack大全
    实现“记录用户登录时间和退出时间,同时记录用户IP,并且要记录用户IP对应的省和城市地址”
  • 原文地址:https://www.cnblogs.com/jackwuyongxing/p/3366512.html
Copyright © 2020-2023  润新知