题意大概是这样的,一对兔子,到第三个月生出小兔子,小兔子三个月后再次生出下兔子,具有生育能力的兔子,每月生一对小兔子,恩,大概就是这样
我们来说说这道题
基本上,我的第一反应就是递归,因为,它越来越多,规律也越来越复杂
#include<stdio.h>
int br(int mouth){
if(mouth==0){ //关键是这个函数的理解return 1; <span style="white-space:pre"> </span> //mouth==0也就刚出生,mouth==1成长需要一个月,很容易理解,当输入月份为0或1时候可以很直观的看出只有一对兔子
}else if(mouth==1){
return 1;
}else if(mouth==2){ //关键在这里,由题中知最初的兔子到了第三个月就会有自己的第一代子代,子代再过三个月就有自己的孙代
return 1;<span style="white-space:pre"> </span> //所以我想当输入3的时候是不是应该有两对兔子那么就有mouth==2返回1
}
return br(mouth-1)+br(mouth-2);
}
int main(){
int mouth,s;
printf("请输入月份");
scanf("%d",&mouth);
s=br(mouth);
printf("%d\n",s);
}
本文介绍了一种使用递归方法解决斐波那契数列问题的算法,该方法适用于模拟兔子繁殖数量的增长情况。通过递归函数逐步求解不同月份兔子的数量,演示了递归算法的基本思想及其在实际问题中的应用。
1万+

被折叠的 条评论
为什么被折叠?



