题意大概是这样的,一对兔子,到第三个月生出小兔子,小兔子三个月后再次生出下兔子,具有生育能力的兔子,每月生一对小兔子,恩,大概就是这样
我们来说说这道题
基本上,我的第一反应就是递归,因为,它越来越多,规律也越来越复杂
#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);
}