一道关于函数的题目(请提示一下),谢谢
一只兔子一个月生一次,一次生两个小兔子,小兔子要三个月长到大兔子,然后也会一个月生一次,一次生两个兔子。那么要生到X只兔子需要多少年。一个兔子 变三个兔子(2*1+1),两个兔子 变5个兔子(2*2)+1,然后依次类推。如果用函数去解,应该怎么制作?
#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)); }我写了一个,不知道对不对,希望高手指点: