level 10
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问:输入第i个月,输出第i个月总共有多少对兔子?
兔子的规律为数列1,1,2,3,5,8,13,21....
下面贴上我的代码,不知道如何修改!!!
2013年10月23日 01点10分
1
level 10
#include <stdio.h>
main()
{
long int t, mon;
int i = 1, j = 1;
printf("请输入月份:\n");
scanf("%d", &mon);
if(mon<3)
printf("第%ld个月有%ld对兔子。\n", mon, i);
else
{
for(t=3; t<=mon; t++)
{
i = i+j;
j = i+j;
}
if(mon%2==0)
printf("第%ld个月有%ld对兔子。\n", mon, j);
else if(mon%2==1)
printf("第%ld个月有%ld对兔子。\n", mon, i);
}
}
2013年10月23日 01点10分
2
level 12
循环有错误,你一次实际算了两次for(t=3; t<=mon; t++)改成for(t=0; t<=(mon - 3) / 2; t++)。或者for(t=3; t<=mon; t++)
{
i = i+j;
j = i+j;
}
if(mon%2==0)
printf("第%ld个月有%ld对兔子。\n", mon, j);
else if(mon%2==1)
printf("第%ld个月有%ld对兔子。\n", mon, i);
}改成
for(t=3; t<=mon; t++)
{
i = i+j;
j = i-j;
}
printf("第%ld个月有%ld对兔子。\n", mon, i);
}
其实递归来做更简洁。
2013年10月23日 02点10分
3
提问最好说明问题所在。
2013年10月23日 02点10分
level 11
斐波那契……干嘛说的那么小清新
——我的世界很小,里面的人很少。
2013年10月23日 04点10分
5
level 11
/*自己写的打印斐波那契数列的,拿来交流,求共同进步*/#include<stdio.h>
int main()
{
long long i,n;
int count;
for (i=1,n=0,count=1;count<44;count++)
{
i=i+n;
n=n+i;
printf("%lld\n%lld\n",i,n);
}
return 0;
}
——我的世界很小,里面的人很少。
2013年10月23日 04点10分
6