举个例子 123321就是回文,同样12321也是,但是123421不是。
其实刚看到这道题时,我们本能的想到的是转换成字符串进行比较,这么做肯定能做出来,但是就丧失了这道题的意义,这道题其实是一道简单题。
我想到的思路是把int类型的数倒过来,和原来比较是否相等就可以,我们需要做的只是把这个数倒过来,那就每次对10取余就可以啦!
直接上代码吧!
#include<iostream>
using namespace std;
int main()
{
int num,tmp;
int reverse = 0;
cin >> num;
if (num < 0)
{
num = -num;
}
tmp = num;
while (tmp != 0)
{
reverse = reverse * 10 + tmp % 10;
tmp /= 10;
}
if (num == reverse)
{
cout << "true" << endl;
}
else
{
cout << "false" << endl;
}
return 0;
}
ps:华为的面试主要问的是项目,当他对你的项目没有什么兴趣的时候才会考考你这样的题!