#include <iostream>
#include "conio.h"
#include <math.h>
using namespace std;
void main()
{
int n;
int sum=0;
int a[16];
cin>>n;
int i=0;
while(n>0)
{
a[i]=n%10;
n=n/10;
i++;
}
for(int j=0;j<=i;j++)
{
if(a[j]!=a[i-j])
{
sum=1;
}
}
if(sum==1)
cout<<"not a palindrome";
else
cout<<" palindrome";
_getch();
}
我输入了上面的代码来检查一个数字是否是回文,但无论我输入的是什么数字,我总是发现它不是回文。我哪里出错了?
最佳答案
while
循环结束后,i
将存储a
中元素的个数。所以在上面的循环中你应该比较a[0]
(第一个元素)和a[i-1]
(最后一个元素)。相反,您将 a[0]
与 a[i]
进行比较,后者不是数字的数字。想一想如何解决这个问题。
关于c++ - 验证代码以检查数字是否为回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20075843/