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+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.