我試着用C語言解決歐拉項目的問題4,但始終得到錯誤的答案。用C語言解決項目歐拉#4
// Project Euler - Problem 5
// 09/01/2014
#include <stdio.h>
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
如果您在自己的帖子中提供了問題鏈接,將會非常有幫助。 –
那麼,如果您的isPalindrome函數是源代碼的90%,而其餘的10%是主線,則isPalindrome函數中存在很大的問題。你可能想看看那裏並做一些調試。它能正確檢測迴文?它能否正確拒絕非迴文數字? – misha
你的代碼打印了什麼? –