什麼是迴文串?
迴文數:迴文數就是一個數字,從左到右讀和從右到左讀一樣,比如 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);
}
}
}
注意:在一個方法裏面定義的變量不能直接在另一個方法裏面使用,必須調用該方法纔可以。不然就會一直報錯顯示:找不到該字符符號。