首頁  >  文章  >  後端開發  >  遞歸程式在C++中檢查一個數字是否為回文數

遞歸程式在C++中檢查一個數字是否為回文數

WBOY
WBOY轉載
2023-09-10 13:25:091241瀏覽

遞歸程式在C++中檢查一個數字是否為回文數

我們得到一個整數作為輸入。目標是使用遞歸來確定輸入數字 Num 是否為回文。

要檢查一個數字是否為回文,請反轉該數字並檢查兩個數字是否相同。若反轉後的數等於原數,則為回文。

範例

輸入− Num = 34212;

輸出− 34212 不是回文!

解釋− 如果我們反轉 34212,則得到 21243。 34212 != 21243 因此輸入數字為不是回文。

輸入− Num = 32123;

#輸出− 32123 是回文!

解釋 - 如果我們反轉 32123,則得到 32132。32123!= 32123,因此輸入數字是回文。

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

在這個方法中,我們使用遞迴函數 revrsNum(int num1, int num2),它接受輸入數字 num1 和臨時數字 num2。

對於基本情況 -:如果 num1 為 0,則傳回 num2。

p>

Else-:使用遞迴計算 num1 的逆序。傳回計算的倒數。

如果兩者相同,則輸入數字為回文。

  • 取輸入數字Num。

    • 取輸入數字Num。 p>

    • 取Num2 = revrsNum(Num,0)

    • 函數revrsNum(int num1, int num2) 遞歸地產生num1 的逆值,且傳回反轉後的數字。

    • 如果 num1 為 0,則以反轉計算結果傳回 num2。

    • 否則將 num2 乘以 10,並且加上 num1 。

    • 使用 num1=num1/10 將 num1 減少 10。

    • 使用 revrsNum( 遞歸num1, num2);

    • 傳回結果。

    • 印出main內部得到的結果。

    範例

    #include <bits/stdc++.h>
    using namespace std;
    int revrsNum(int num1, int num2){
       if (num1 == 0){
          return num2;
       }
       num2 *= 10;
       num2 += (num1 % 10);
       num1 = num1/10;
       return revrsNum(num1, num2);
    }
    int main(){
       int Num = 1345431;
       int Num2 = revrsNum(Num,0);
       if (Num == Num2){
          cout <<Num<<" is Palindrome!";
       }
       else{
          cout <<Num<<" is not a Palindrome!";
       }
       return 0;
    }

    輸出

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

    1345431 is Palindrome!
    #

以上是遞歸程式在C++中檢查一個數字是否為回文數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除