今天在做兔子問題(有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月
* 後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數爲多少?)的時候,運行的時候報錯:
原代碼:
#include <stdio.h>
int main()
{
int f1 = 1;
int f2 = 1;
int i;
for(i = 1; i <= 20; i++)
{
//printf("兔子的只數 = %d,兔子的只數 = %d",f1,f2);
printf("%12d %12d",f1,f2);
if( i % 4 == 0)
{
printf("\n");
}
f1 = f1 + f2;
f2 = f2 + f1;
}
}
發現是定義f1,f2時使用的int型(-2147483648~2147483647),循環體要求執行19次,最終結果與int型不符合,報錯,改爲long型後正常執行。