数值回文判断,不转换为字符串

题目要求:

有这样一类数字,它们顺着看和倒着看是相同的数,例如121、656、2332等,这样的数字叫做回文数字。编写一个程序,判断从键盘接收的数字是否为回文数字。

题目分析:

要想判断一个数是否是回文数字,必须从回文数字的特点入手。因为回文数字顺着看和倒着看是相同的数,所以可以通过这个特点来判断一个数字是否是回文数字。

显然可以通过将一个十进制数"倒置"的办法来判断它是否是回文数字。所谓倒置就是计算该十进制数倒过来后的结果。例如一个数是123,它的倒置结果 为321,因为123不等于321,所以123不是回文数字。同理,一个数是121,它的倒置结果也为121,所以121是回文数字。

Java版:

 1 import java.util.Scanner;
 2 public class Palindrome {
 3 
 4     public static void main(String[] args) {
 5         // 将数值反过来。如:123 反过来是321 ,如果两个数相等,则是回文,否则不是
 6         while(true)
 7         {
 8             System.out.print("Please input an number:");
 9             Scanner input = new Scanner(System.in);
10             int number = input.nextInt();
11             System.out.println(isPalindrome(number));
12         }
13     }
14     public static boolean isPalindrome(int number)
15     {
16         int numberReverse = reverse(number);
17         if(number == numberReverse)
18             return true;
19         else
20             return false;
21     }
22     public static int reverse(int number)
23     {
24         int temp = 0;
25         int remainder;
26         while(number != 0)
27         {
28             remainder = number % 10;
29             number = number / 10;
30             temp = temp * 10 + remainder;
31         }
32         return temp;
33     }
34 }

 

posted @ 2013-10-30 18:56  soul390  阅读(775)  评论(0编辑  收藏  举报