zoukankan      html  css  js  c++  java
  • SZU:B54 Dual Palindromes

    Judge Info

    • Memory Limit: 32768KB
    • Case Time Limit: 10000MS
    • Time Limit: 10000MS
    • Judger: Number Only Judger

    Description

    A number that reads the same from right to left as when read from left to right is called a palindrome. The number 12321 is a palindrome; the number 77778 is not. Of course, palindromes have neither leading nor trailing zeroes, so 0220 is not a palindrome.

    The number 21 (base 10) is not palindrome in base 10, but the number 21 (base 10) is, in fact, a palindrome in base 2 (10101).

    Write a program that reads two numbers (expressed in base 10):

    • N (1 <= N <= 15)
    • S (0 < S < 10000)

    and then finds and prints (in base 10) the first N numbers strictly greater than S that are palindromic when written in two or more number bases (2 <= base <= 10). Solutions to this problem do not require manipulating integers larger than the standard 32 bits.

    Input

    The first line of input contains T(1 leq T leq 100), the number of test cases.

    For each test case, there is a single line with space separated integers N and S.

    Output

    For each test case output N lines, each with a base 10 number that is palindromic when expressed in at least two of the bases 2..10. The numbers should be listed in order from smallest to largest.

    Sample Input

    2
    3 25
    1 25
    

    Sample Output

    26
    27
    28
    26

    解题思路:找两个1~10进制之间的回文数字,当时看成找1个回文数字就可以通过,所以导致好久才AC,看题失误!

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 char A[200];
     5 int main()
     6 {
     7     int num,r,i,n,j,t,k,ke,mark,len,last,flag;
     8     scanf("%d",&n);
     9     while(n--){
    10         scanf("%d %d",&last, &k);
    11         while(last--){
    12             ++k;
    13 
    14             flag=0;
    15             for(r=2;r<=10;r++){
    16                 i=0;
    17                 num=k;
    18                 mark=1;
    19                 
    20                 while(num>0){
    21                     t=num%r;
    22                     A[i]= t+'0';    
    23                     ++i;
    24                     num/=r;
    25                 }
    26                  len = i-1;
    27 
    28                 for(i=0,j=len;i<=j;i++,j--){
    29                     if(A[i]!=A[j])
    30                         mark=0;
    31                 }
    32 
    33                 if(mark==1){
    34                     flag++;
    35                 }
    36                 if(flag==2){
    37                     printf("%d
    ", k);
    38                     break;                    
    39                 }
    40             }
    41             if(flag!=2)
    42                 ++last;
    43         }
    44     }
    45     return 0;
    46 }
  • 相关阅读:
    GoJS实例1
    MAVEN 添加本地jar
    找不到xml、找不到类
    office365激活码序列号密钥:
    【转载】EF Core & Castle DynamicProxy基本用法(AOP)
    【转载】SQL Server
    【转载】对象克隆(C# 快速高效率复制对象另一种方式 表达式树转)
    [转载] Emit动态生成代码
    【转载】Windows 下搭建 wmi_exporter+Prometheus+Grafana 服务器性能监控平台
    Java RMI 使用
  • 原文地址:https://www.cnblogs.com/firstrate/p/3198169.html
Copyright © 2011-2022 走看看