递归问题之兔生兔

题意大概是这样的,一对兔子,到第三个月生出小兔子,小兔子三个月后再次生出下兔子,具有生育能力的兔子,每月生一对小兔子,恩,大概就是这样

我们来说说这道题

基本上,我的第一反应就是递归,因为,它越来越多,规律也越来越复杂

#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);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值