我试着用C语言解决欧拉项目的问题4,但始终得到错误的答案。用C语言解决项目欧拉#4
// Project Euler - Problem 5
// 09/01/2014
#include
int a,b,c,digits[14],e,y,z,biggestNum;
void isPalindrome (int x)
{
a = -1;
c = 0;
b = x;
while (b != 0)
{
digits[c] = (b % 10);
b=b/10;
c++;
}
while (c>=a)
{
if(digits[++a]!=digits[--c])
{
break;
}
if(a==c) { biggestNum=x; }
else if(a==c-1) { biggestNum=x; }
}
}
int main (void)
{
for(y=10; y<1000; y++)
{
for(z=10; z<1000; z++)
{
isPalindrome(y*z);
}
}
printf ("%d",biggestNum);
return 0;
}
有人能告诉我我的代码有什么问题吗?也许在检查数字是回文功能? 感谢 The Problem
+0
如果您在自己的帖子中提供了问题链接,将会非常有帮助。 –
+0
那么,如果您的isPalindrome函数是源代码的90%,而其余的10%是主线,则isPalindrome函数中存在很大的问题。你可能想看看那里并做一些调试。它能正确检测回文?它能否正确拒绝非回文数字? –
+0
你的代码打印了什么? –