c++ - 验证代码以检查数字是否为回文

标签 c++ visual-c++

#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/

相关文章:

c - 非 int 类型的位字段?

c++ - 从非版本控制文件夹移动到版本控制文件夹后,VC++ VS2013 项目无法编译

visual-c++ - 在 VC++ 6 中创建新的连接点?

c++ - 在 windbg 的用户模式转储中查找 hwnd 信息

c++ - 求STL-aware c++filt

c++ - 运行 boost::asio 套接字示例时我传递给客户端的参数是什么

c++ - 如何在对象的生命周期内保持 Boost upgradable_lock?

c++ - C/C++ 编译器会优化这个 if 语句吗?

c++ - OpenCV Feature2D 类中 CV_WRAP 和 CV_OUT 的含义是什么

C++ - 在我关闭程序之前 ofstream 不会输出到文件