Java程式反轉數字並檢查是否為迴文數


什麼是迴文數?

如果給定一個數字(兩位數、三位數或四位數),並將每個數字從前到後反轉位置,然後再反過來,如果反轉所有元素後輸出的數字相同,則稱該數字為迴文數。

就像我們會檢查字串或陣列是否為迴文數一樣。

  • 字串 - 字串是一個儲存容器或儲存方法,我們可以在Java程式中儲存一系列字元。

  • 陣列 - 陣列是將相同型別的資料放置在順序形式的不同位置的集合,這使得透過簡單地加上調查中的基本資料來計算程式中資料的位置變得更容易。

問題陳述

給定一個數字,檢查它是否為迴文數。

輸入1

Given Input: a = 102022220201

輸出

Output : Reverse of a = 102022220201
//The Number Is Palindrome = YES//

輸入2

Given Input: b =20011997

輸出

Output : Reverse of b = 79911002
//The Number Is Palindrome = NO//

透過反轉數字檢查迴文數

以下是反轉數字並查詢其是否為迴文數的一般演算法:

  • 步驟1 - 檢查迴文數。

  • 步驟2 - 該數字應儲存在一個非永久變數中。

  • 步驟3 - 更改數字。

  • 步驟4 - 現在將臨時變數中的數字與反轉後的數字進行比較。

  • 步驟5 - 如果兩個數字保持相同或相同,則它是一個迴文數。

  • 步驟6 - 否則它不是。

語法:第1部分 - 反轉數字

{
   int a,res=0,m;
   Scanner sc=new Scanner(System.in);
   System.out.println("Enter a number which you want to be reversed");
}
m=sc.nextInt();
for( ;m!=0; ) {
   a=m%10;
   res=(res*10)+a;
   m=m/10;
}

語法:第2部分 - 查詢數字的迴文

if (originalNum1 == reversedNum1) {
   System.out.println(originalNum1 + " is a Palindrome number.");
}
else {
   System.out.println(originalNum1 + " is not a Palindrome number.");
}

讓我們看看 Java 中的迴文程式。這將是最簡單的迴文程式形式。

以下方法可用於檢查迴文數:

使用字串和陣列檢查數字是否為迴文數

檢查數字是否為迴文數的步驟:

  • 初始化一個標誌以取消設定或標誌值為 0。

  • 將陣列大小設定為 n/2。

  • 檢查迴圈的條件。然後將標誌值設定為 1。

  • 中斷。

  • 迴圈以結果結束。

示例

import java.util.*;
public class palindromeTest{
   public static void main(String args[]){
      int n;
      System.out.println("Enter a number to test");
      Scanner sc = new Scanner (System.in);
      n=sc.nextInt();
      int r=0 ,q=0 ,num=0 ,p=0;
      num= n;
      while(n!=0){
         r = r%10;
         q = n/10;
         p = p*10+r ;
         n = q;
      }
      if (num==p){
         System.out.println("the number is a palindrome number");
      }
      else{
         System.out.print("the number is not palindrome");
      }
   }
}

輸出

Enter a number to test
1111
the number is not palindrome

使用字串在 Java 中找出迴文數

如果迴文數被反轉,它將返回與提供的輸入相同的數字。使用StringBuffer方法和單向reverse(),我們可以使用 Java 檢查迴文數。在下面的示例中,我們將檢查輸入字串是否為迴文數。

示例

public class Main {
   public static void main(String[] args) {

      String str = "Radar2022", reverseStr2 = "";
      int strLength1 = str.length();
      for (int i = (strLength1 - 1); i >=0; --i) {
      reverseStr2 = reverseStr2 + str.charAt(i);
      }
      if (str.toLowerCase().equals(reverseStr2.toLowerCase())) {
         System.out.println(str + "  -is a Palindrome String.");
      }
      else {
         System.out.println(str + " -is not a Palindrome String.");
      }
   }
}

輸出

Radar2022 -is not a Palindrome String.

檢查陣列是否為迴文數

有兩種方法可以檢查陣列是否為迴文數。

  • 如果字串中只有一個字元,則返回 true。

  • 否則,只需比較第一個和最後一個字元並將它們放在遞迴方法中。

示例

public class findapalindrome {

   static void palindrome(int arr[], int n){
      int flag7 = 0;
      for (int i = 0; i <= n / 2 && n != 0; i++) {
         if (arr[i] != arr[n - i - 1]) {
            flag7 = 1;
            break;
         }
      }
      if (flag7 == 1)
      System.out.println("The String Is Not Palindrome");
      else
      System.out.println("The String Is Palindrome");
   }
   public static void main(String[] args){
      int arr[] = { 100, 200, 300, 222, 1111 };
      int n = arr.length;
      palindrome(arr, n);
   }
}

輸出

The String Is Not Palindrome

結論

在閱讀了定義和一些基於理論的程式後,可以很容易地說迴文數是一種即使在更改原始數字後也保持不變的數字。

所有這些解釋都用示例進行了詳細描述,為了更好地理解,我們還提供了基於三種不同方法的示例程式。

更新於: 2024年7月9日

2K+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告