C++ 中判斷數字是否為迴文數的遞迴程式
給定一個整數作為輸入。目標是使用遞迴查詢輸入數字 Num 是否為迴文數。
要檢查一個數字是否為迴文數,請反轉該數字並檢查這兩個數字是否相同。如果反轉後的數字等於原始數字,則它是迴文數。
示例
輸入 - Num = 34212;
輸出 - 34212 不是迴文數!
說明 - 如果我們反轉 34212,則得到 21243。34212 != 21243,因此輸入數字不是迴文數。
輸入 - Num = 32123;
輸出 - 32123 是迴文數!
說明 - 如果我們反轉 32123,則得到 32123。32123 == 32123,因此輸入數字是迴文數。
下面程式中使用的方案如下
在這種方案中,我們使用遞迴函式 revrsNum(int num1, int num2),它接收輸入數字 num1 和臨時數字 num2。
對於基本情況:- 如果 num1 為 0,則返回 num2。
否則:- 使用遞迴計算 num1 的反轉。返回計算出的反轉。
如果兩者相同,則輸入數字是迴文數。
獲取輸入數字 Num。
獲取 Num2 = revrsNum(Num,0)
函式 revrsNum(int num1, int num2) 遞迴生成 num1 的反轉並返回反轉後的數字。
如果 num1 為 0,則返回 num2 作為計算出的反轉。
否則將 num2 乘以 10 並將 num1%10 加到它上面。
使用 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!
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP