一道关于函数的题目(请提示一下),谢谢
一只兔子一个月生一次,一次生两个小兔子,小兔子要三个月长到大兔子,然后也会一个月生一次,一次生两个兔子。那么要生到X只兔子需要多少年。一个兔子 变三个兔子(2*1+1),两个兔子 变5个兔子(2*2)+1,然后依次类推。如果用函数去解,应该怎么制作?
2011-10-26 15:28
2011-10-26 15:41
2011-10-26 15:48
程序代码:#include<stdio.h>
int getmoon(int sum)
{
int i=0,s,x=1,y1=0,y2=0,y3=0;/*x用来存成年的,y用来存小的,i用来存月数*/
while (1)
{
s=y3; /*3月龄的现再也应成年了,下面行同理*/
y3=y2;
y2=y1;
y1=x*2; /*这个月新生小免数*/
x+=s; /*这月底的成年数,下月要生小免的*/
i++;
if((y3+y2+y1+x)>sum)
{
return i;
}
}
}
main()
{
int sum;
printf("Please enter a number:");
scanf("%d",&sum);
printf("Need moonth are:%d",getmoon(sum));
}
我写了一个,不知道对不对,希望高手指点:
2011-10-26 16:46