如果回文数字相反,即其值不变,则回文数保持不变。回文数也可以称为对称数。例如:数字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
在上面的程序中,回文功能可以找出数字是否为回文数。该函数采用一个参数,即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;