Java 中的逆序和加法函式


給定一個整數,我們的目標是反轉該數字的數字,並將反轉後的數字加到原始數字上,並檢查結果數字是否為迴文數,並重復此過程直到完成。該過程的斷點是 1000 次迭代和大於最大長整數值 (Long.MAX_VALUE) 的值。

例如

輸入 - 1678

輸出 - 給定輸入 1678 的迴文數 293392

解釋 - 首先反轉輸入數字,然後將其新增到原始數字中,然後檢查它是否為迴文數,如果它不是迴文數,則對更新後的數字重複相同的過程。該過程的斷點是 1000 次迭代和大於最大長整數值 (Long.MAX_VALUE) 的值。

輸入 - 202021038

輸出 - 給定輸入 202021038 的迴文數 1453553541

解釋 - 首先反轉輸入數字,然後將其新增到原始數字中,然後檢查它是否為迴文數,如果它不是迴文數,則對更新後的數字重複相同的過程。該過程的斷點是 1000 次迭代和大於最大長整數值 (Long.MAX_VALUE) 的值。

下面程式中使用的方案如下

  • 在 main 函式內部

    • 輸入數字傳遞給方法 calculateReverseandAdd(input)

  • 在方法 calculateReverseandAdd 內部

    • 引入一個新的變數 rev_number

    • 迴圈迭代的條件是 number <= max

    • 在迴圈內部,透過將數字傳遞給方法 reverseNumber() 獲取數字的反轉。

    • 然後將反轉後的數字加到輸入數字上。

    • 然後透過將數字傳遞給方法 checkPalindrome() 檢查獲得的數字是否為迴文數,如果是,則將數字作為輸出列印給使用者。

    • 如果數字不是迴文數,則使用獲得的數字重複相同的過程,直到獲得迴文數,如果結果數字大於最大長整數值,則給定數字範圍內不存在可能的迴文數。

示例

import java.util.*;
public class ReverseAdd{
   static final long max = Long.MAX_VALUE;
   static long reverseNumber(long number){
      long rev_number = 0;
      while (number > 0){
         rev_number = rev_number * 10 + number % 10;
         number = number / 10;
      }
      return rev_number;
   }
   static boolean checkPalindrome(long number){
      return (reverseNumber(number) == number);
   }
   static void calculateReverseandAdd(long number){
      long rev_number = 0;
      System.out.println("Palindrome of the given input " + number);
      while (number <= max){
         rev_number = reverseNumber(number);
         number = number + rev_number;
         if (checkPalindrome(number)){
            System.out.println(number);
            break;
         }
         else if (number > max){
            System.out.println("No possible palindromes for the input");
         }
      }
   }
   public static void main(String[] args){
      calculateReverseandAdd(1678);
      calculateReverseandAdd(2961);
      calculateReverseandAdd(202021038);
   }
}

輸出

如果我們執行以上程式碼,它將生成以下輸出

Palindrome of the given input 1678
293392
Palindrome of the given input 2961
69696
Palindrome of the given input 202021038
1453553541

更新於: 2021年11月3日

588 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告