Java程序练习-回文平方数


描述
回文数是指从左向右念和从右向左念都一样的数。如12321就是一个典型的回文数。

给定一个进制B(2<=B<=20,由十进制表示),输出所有的大于等于1小于等于300(十进制下)且它的平方用B进制表示时是回文数的数。用’A’,’B’……表示10,11等等。
输入
共一行,一个单独的整数B(B用十进制表示)。

输出
每行两个B进制的符合要求的数字,第二个数是第一个数的平方,且第二个数是回文数。

样例输入
10

样例输出
1 1
2 4
3 9
11 121
22 484
26 676
101 10201
111 12321
121 14641
202 40804
212 44944
264 69696

参考代码

  1. import java.util.*;  
  2. public class Main {  
  3.     public static void main(String[] args) {  
  4.         Scanner cin = new Scanner(System.in);  
  5.         int T = cin.nextInt();  
  6.         print(T);  
  7.     }  
  8.   
  9.     private static void print(int t) {  
  10.         for(int i = 1;i <= 300;++ i){  
  11.             int s = i * i;  
  12.             StringBuffer num = new StringBuffer();  
  13.             StringBuffer square = new StringBuffer();  
  14.             num = convert(i,t);  
  15.             square = convert(s,t);  
  16.             //System.out.print(square);   
  17.             if(ispalindrom(square)){  
  18.                 System.out.println(num.reverse()+" "+square);  
  19.             }  
  20.         }  
  21.     }  
  22.     private static StringBuffer convert(int s, int t) {  
  23.         StringBuffer rtnval = new StringBuffer();  
  24.         int digit;  
  25.         while(s > 0){  
  26.             digit = s % t;  
  27.             if(digit >= 10){  
  28.                 rtnval.append((char)('A'+digit - 10));  
  29.             }else{  
  30.                 rtnval.append(digit);  
  31.             }  
  32.             s /= t;  
  33.         }  
  34.         return rtnval;  
  35.     }  
  36.     private static boolean ispalindrom(StringBuffer bf) {  
  37.         String s = new String(bf);  
  38.         char sch[] = s.toCharArray();  
  39.         int len = sch.length;  
  40.         //System.out.println(" "+len);   
  41.         for(int i = 0;i < len / 2;++ i){  
  42.             if(sch[i] != sch[len - i - 1]){  
  43.                 return false;  
  44.             }  
  45.         }  
  46.         return true;  
  47.     }  
  48. }  

相关内容