我尝试使用以下代码检查数字是否为回文:
unsigned short digitsof (unsigned int x)
{
unsigned short n = 0;
while (x)
{
x /= 10;
n++;
}
return n;
}
bool ispalindrome (unsigned int x)
{
unsigned short digits = digitsof (x);
for (unsigned short i = 1; i <= digits / 2; i++)
{
if (x % (unsigned int)pow (10, i) != x % (unsigned int)pow (10, digits - 1 + i))
{
return false;
}
}
return true;
}
但是,以下代码无法检查回文 - 即使数字是回文,也始终返回 false。
谁能指出错误?
(请注意:我没有兴趣将它变成一个字符串并将其反转以查看问题所在:相反,我有兴趣知道上述代码中的错误在哪里。)