今天在做兔子问题(有一对兔子,从出生后第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型后正常执行。