递归

您所在的位置:网站首页 python兔子问题 递归

递归

2023-10-20 11:17| 来源: 网络整理| 查看: 265

兔子繁殖问题:题目描述 有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?

输入描述: 输入int型表示month

输出描述: 输出兔子总数int型

基本思路: 这是一个递归问题,从第一个月开始每个月兔子的数目为:1,1,2,3,5,8,13…,可以看出从第三个月开始,每个月兔子的数目是前两个月兔子的数目的和,用数学表示为F(month) = F(month-1)+F(month-2)。

C语言递归算法 /*兔子繁殖问题 本题来自于一个有趣的古典数学问题: 有一对兔子,从出生后的第3个月起每个月都生一对兔子。 小兔子长到第3个月又生一对兔子。 如果生下的所有兔子都能成活,且所有的兔子都不会因年龄大而老死, 问每个月的兔子总数为多少? */ #include #include int main() { int month; int rabbit(int); printf("请输入第几个月数:\n"); scanf("%d",&month); rabbit(month); printf("第%d月的兔子总数为:%d\n",month,rabbit(month)); system("pause"); return 0; } int rabbit(int month) { if(month==1||month==2) return 1; else return rabbit(month-1)+rabbit(month-2); } 递归的优缺点:

**优点:**递归的使用可以使代码更简洁清晰,可读性更好(对于初学者到不见得), **缺点:**但由于递归需要系统堆栈,所以空间消耗要比非递归代码要大很多,而且,如果递归深度太大,可能系统资源会不够用。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3