永发信息网

回文数编程,怎样改进?

答案:1  悬赏:60  手机版
解决时间 2021-08-01 13:33
  • 提问者网友:龅牙恐龙妹
  • 2021-07-31 18:01

我写的判断回文数的代码,百位一下的能正确判断,但千位以上就不能了,肯定哪地方没设计好,请大虾帮忙改进
bool isPalindrome(int num) {
int n = 1, chushu = 10;
while (num / chushu != 0) {
chushu *= 10;
n++;
} //Find how large is a number
int division = (int) pow(10.0, n - 1);

for (int i = 0; i < n / 2; i++) {
int first = num / division;
int last = num % 10;
if (first != last) {

return false;

}
num = (int) ((num - first * division) / 10);
division /= 10;
}
return true;


}

最佳答案
  • 五星知识达人网友:猎心人
  • 2021-07-31 18:18
#include <iostream.h>
bool isPalindrome( int x )
{
int y = 0, t;
t = x;
while ( t > 0 ) {
y = y * 10 + t % 10;
t /= 10;
}
while ( x >0 && y % 10 == x % 10 ) {
y /= 10;
x /= 10;
}
return x == 0;
}

void main()
{
int i;
for ( i = 1; i <= 10000; ++i )
if ( isPalindrome( i ) )
cout << i << endl;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯