万水千山走过

导航

判断一个数是否为回文数或者打印特定范围的回文数。

回文数:设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。

 1 public class PracticeDemo {
 2     /**
 3      *@Function: isPalindrome
 4      *@Description:判断1个数是否为回文数(一个数正着读和反着读一样)。
 5      *@Input:一个整型数
 6      *@Return_Type: boolean
 7      *@Return:判断是否为回文花数(true和false)
 8      *@Other:利用字符串知识点来解决
 9      *2020年2月18日:
10       *上午11:54:15
11      */
12     public static boolean isPalindrome(int x)
13     {
14         String s = ""+x; //java支持字符串相加
15         for(int i = 0;i < s.length()/2;i++)
16         {
17             if(s.charAt(i) != s.charAt(s.length()-1-i))//提取前后位置的字符串
18             return false;
19         }
20         return true;
21     }
22     //同上
23     public static boolean isPalindrome1(int x)
24     {
25        if(x < 0)
26        {
27          return false;
28        }
29        int temp = 1;
30        int a = x;
31        while(a >= 10)//1001
32         {
33           temp *= 10; //高位权值
34           a /= 10; //为找到最高权值做铺垫
35         }
36      
37        while(x != 0) 
38         {
39           if(x%10 != x/temp) //最后一位和最高位比较
40            {
41              return false;
42            }
43           x = x % temp / 10; //x变为去掉最前面一位和最后一位
44           temp /= 100;//每次去掉两个数,位权值减低100
45         }
46        return true; 
47      }
48    /**
49     *@Function:PrintPalindrome
50     *@Description:打印所输进范围的回文数
51     *@Input:两个整型数,表示x~y范围
52     *@Output:x~y范围的回文数
53     *@Return_Type:void
54     *@Return:void
55     *@Other:利用字符串
56     *2020年2月18日:
57     *下午12:04:15
58    */
59    public static void PrintPalindrome(int x ,int y)
60     {
61       for(int i = x;i < y+1;i++) 
62        {   
63          int is = 1;//标志数 或者标号M(在第一个for前面M:)
64          String l = "" + i; 
65          for(int j = 0;j < l.length()/2;j++)
66          {
67             if(l.charAt(j) != l.charAt(l.length()-1-j))
68             {
69                 is = -1;
70              //continue M; 直接跳到M标号处
71             }
72          }
73          if(-1 != is)
74             System.out.print(i+" ");
75       }
76    }
77  public static void main(String[] args) {
78     Scanner input = new Scanner(System.in);
79     System.out.println("请您输入所要求回文数的范围:");
80     int x = input.nextInt();
81     int y = input.nextInt();
82     //System.out.println(isPalindrome(x));
83     //System.out.println(isPalindrome1(x));
84     PrintPalindrome(x,y);
85   }
86  }

 

posted on 2020-02-18 12:26  万水千山走过  阅读(251)  评论(0编辑  收藏  举报