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;
       }
     }
    }

  • 相关阅读:
    C# 上传辅助方法
    C# 经纬度计算
    C#Excel导出反射数据集
    C# 数据模板导出
    C# 百度经纬度获取地址信息
    【平台开发】— 5.后端:代码分层
    【平台开发】— 4.mysql建库建表
    【平台开发】— 3.前端开发思路
    【平台开发】— 2.前端:vue-element-admin
    【平台开发】— 1.开篇
  • 原文地址:https://www.cnblogs.com/jackwuyongxing/p/3366512.html
Copyright © 2011-2022 走看看