数值回文判断,不转换为字符串
题目要求:
有这样一类数字,它们顺着看和倒着看是相同的数,例如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 }