歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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. }  
Copyright © Linux教程網 All Rights Reserved