判断一个数字是否是回文数字,如果是则打印出100以内的回文数字,若不是只给出提示信息。

回文数字指的是什么呢?什么是回文数字呢?

回文数字的特征是:一组数字,从左读和从右读都是一样的,比如:123、123321、12345654321

public class HuiWenTest
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);

        try
        {
            System.out.println("请输入你要判断的数字: ");
            
            String word = sc.next();
            
            int i = word.length();
            
            int j = 0;
            
            while(j <= (i / 2) - 1 && word.charAt(j) == word.charAt(i - j - 1))
            {
                j++;
            }
            if(j == i / 2)
            {
               System.out.println("这是一个回文数字.");

      System.out.println("100以内的回文数字为:" );    

      for (int ir = 10; ir < 100; ir++)
           {
                 // 10以内的正整数不是回文数,所以从10开始
                 if (isCircleNumber(ir))
                 {
                      // 判断是否为回文数字
                    System.out.println("   " + ir); // 打印回文数字
                 }
            }
            }
            else
            {
                System.out.println("这不是一个回文数字.");
            }

    
        }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
        }
        finally
        {
            sc.close();
        }
    }
}

private static boolean isCircleNumber(int num)
    {
        int oldNum = num; // 原值
        int temp = 0; // 反值
        while (num > 0)
        {
            // 循环 num 的每一位数值
            temp = temp * 10 + num % 10; // 得到一位数字
            
            num /= 10; // num减少一位
        }
        return temp == oldNum; // 判断反值与原值是否相等
    }

posted on 2017-04-13 19:46  java-追风筝的人  阅读(556)  评论(0编辑  收藏  举报

导航