我正在嘗試euler項目問題2來提高我的編程和解決問題的能力。我被困在問題2然而,我不知道我在代碼中出錯。這裏是問題:爲什麼我的歐拉項目代碼有缺陷?
斐波納契數列中的每個新項都是通過添加前兩項生成的。通過用1和2開始,第一10項將是:
1,2,3,5,8,13,21,34,55,89,...
由考慮斐波那契數列中不超過四百萬的項,找到偶數項的和。
這是我在解決方案的嘗試。
#define MAX 4000000
int main()
{
int num1=1, num2=1, temp, sum;
while(num1<MAX || num2<MAX)
{
temp=num1+num2;
num1=num2;
num2=temp;
if(temp%2==0)
sum += temp;
}
printf("Sum= %d", sum);
}
我得到(這是錯誤的)的輸出是
總和= 9212508
請閱讀此:http://ericlippert.com/2014/03/05/how-to-debug-small-programs/ –
我粘貼代碼時忘了包括宏。我很抱歉。 –
另請閱讀本文:http://devproconnections.com/development/c-sharp-code-writing-tips-eric-lippert-math該文章是關於C#的,但幾乎所有內容也適用於C語言。特別是閱讀本節在整數算術上。 –