zoukankan      html  css  js  c++  java
  • 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;
       }
     }
    }

  • 相关阅读:
    洗礼灵魂,修炼python(48)--巩固篇—模块
    洗礼灵魂,修炼python(48)--巩固篇—模块
    洗礼灵魂,修炼python(48)--巩固篇—模块
    Excel中拆分列
    Excel中拆分列
    Excel中拆分列
    Excel中拆分列
    Eclipse新建类的时候如何自动添加注释(作者,时间,版本等信息)
    Eclipse新建类的时候如何自动添加注释(作者,时间,版本等信息)
    用golang实现DDOS攻击网站
  • 原文地址:https://www.cnblogs.com/jackwuyongxing/p/3366512.html
Copyright © 2011-2022 走看看