什么是回文数?
回文数:回文数就是一个数字,从左到右读和从右到左读一样,比如 121 、12321、 3456543、 等等这些都是回文数。
那么今天就带大家一起来看看如何用 java 编写程序 输出判断回文数。
做题思路:
1、提示用户输入一个数字
2、拼接出该数字的反序,判断该数字是否是回文数
判断思路:
以数字 12345 为例,将 数字12345 先逐个拆开 成 5 4 3 2 1 ,然后在计算 5*10000+4*1000+3*100+2*10+1 ,看
输出结果是否等于 12345 ,如果相等,则该数是回文数,否则不是。
拆分方法如下:
12345%10=5 12345/10=1234
1234%10=4 1234/10=123
123%10=3 123/10=12
12%10=2 12/10=1
1%10=1 1/10=0
54321
5*10000+4*1000+3*100+2*10+1 ? = 12345
sum=0
sum=sum*10+5; //5
sum=sum*10+4; //54
sum=sum*10+3; //543
sum=sum*10+2; //5432
sum=sum*10+1; //54321
例题一:提示用户输入一个三位的整数,然后确定它是否是回文数。
代码展示:
import java.util.Scanner;
class Demo03_04{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个数字:");
int num=scanner.nextInt();
int temp=num; //将输入数字保存在 temp 中 ;因为下面代码会改变 num 的值
int sum=0;
sum=sum*10+num%10;
num/=10;
sum=sum*10+num%10;
num/=10;
sum=sum*10+num%10;
num/=10;
sum=sum*10+num%10;
num/=10;
sum=sum*10+num%10;
num/=10;
sum=sum*10+num%10;
num/=10;
if(sum==temp){ // 判断sum 是否等于 num
System.out.println("是回文");
}else{
System.out.println("不是回文");
}
}
}
例题二、使用下面两个方法头编写两个方法,使用reserve 方法实现 isPalindrome。提示用户输入一个整数值,判断该数是否是回文数。
public static int reverse(int number) //Return the reversal of an integer , i.e. ,reserve(456) returns 654
public static boolean isPalindrome(int number) // Return true if number is a Palindrome
import java.util.Scanner;
public class Demo04_02{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a number : ");
int number = scanner.nextInt();
if(isPalindrome( number)){
System.out.println(reverse(number) +"是回文数");
}else{
System.out.println(reverse(number) +"不是回文数");
}
}
public static int reverse(int number){
int sum=0;
while(number!=0){
sum=sum*10+number%10;
number/=10;
}
return (sum);
}
public static boolean isPalindrome(int number){
if(number==reverse(number)){
return(true);
}else{
return(false);
}
}
}
注意:在一个方法里面定义的变量不能直接在另一个方法里面使用,必须调用该方法才可以。不然就会一直报错显示:找不到该字符符号。