習題練習 -----用java編寫程序檢驗迴文串

什麼是迴文串?

迴文數:迴文數就是一個數字,從左到右讀和從右到左讀一樣,比如 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);
            }
        }
    }

注意:在一個方法裏面定義的變量不能直接在另一個方法裏面使用,必須調用該方法纔可以。不然就會一直報錯顯示:找不到該字符符號。

發佈了16 篇原創文章 · 獲贊 25 · 訪問量 3151
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章