C++程式檢查數字是否為迴文數


迴文數是指如果其數字反轉後仍然保持不變的數字,即其值不發生變化。迴文數也可以稱為對稱數。例如:數字12321、1551、11等是迴文數,因為即使它們的數字反轉,它們也不會改變。

檢查數字是否為迴文數的程式如下所示。

示例

 線上演示

#include<iostream>
using namespace std;
void palindrome(int num) {
   int rev=0,val;
   val = num;
   while(num > 0) {
      rev = rev * 10 + num % 10;
      num = num / 10;
   }
   if(val==rev)
   cout<<val<<" is a palindrome"<<endl;
   else
   cout<<val<<" is not a palindrome"<<endl;
}
int main() {
   palindrome(12321);
   palindrome(1234);
   return 0;
}

輸出

12321 is a palindrome
1234 is not a palindrome

在上述程式中,函式palindrome查詢數字是否為迴文數。該函式接受一個引數,即num。在任何處理發生之前,都會建立num的副本,即val。num的值被反轉並存儲在rev中。

這由以下程式碼片段所示:

int rev=0,val;
val = num;
while(num > 0) {
   rev = rev * 10 + num % 10;
   num = num / 10;
}

在此之後,rev的值與val而不是num進行比較。這是因為num的值現在為0。如果rev等於val,則該數字是迴文數,並打印出來,否則該數字不是迴文數。

這可以在以下程式碼片段中看到。

if(val==rev)
cout<<val<<" is a palindrome"<<endl;
else
cout<<val<<" is not a palindrome"<<endl;

更新於: 2020年6月24日

3K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告