游戏传奇首页
游戏我的天下首页
最好看的新闻,最实用的信息
05月21日 13.8°C-16.0°C
澳元 : 人民币=4.77
悉尼
今日澳洲app下载
登录 注册

每日一道c语言编程题,第十一题 古典问题(兔子生崽)

2023-03-09 来源: 搜狐宠物 原文链接 评论0条

古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

#include

int rabbit(int n) {

if (n == 1 || n == 2) {

return 1;

} else {

return rabbit(n - 1) + rabbit(n - 2);

}

}

int main() {

int n;

printf("请输入月份:");

scanf("%d", &n);

printf("第%d个月时有%d对兔子", n, rabbit(n));

return 0;

}

这是一道经典的递归问题,题目描述的是一对兔子在出生后第三个月开始每个月都会生一对兔子,而新生的兔子到了第三个月后也会开始生兔子。假设兔子不死,问第 n 个月时有多少对兔子。

这个问题可以用递归函数来解决,因为每个月的兔子对数都与前两个月的兔子对数有关系。当月份小于等于 2 时,兔子对数为 1;当月份大于 2 时,兔子对数为上个月的兔子对数加上上上个月的兔子对数。递归函数的终止条件是月份等于 1 或 2。

具体实现时,我们可以写一个名为 rabbit 的递归函数,传入一个整数参数 n,代表第 n 个月。如果 n 等于 1 或 2,函数直接返回 1;否则,函数返回 rabbit(n-1) + rabbit(n-2)。在主函数中,我们输入月份 n,调用 rabbit 函数计算出第 n 个月时兔子的对数,然后输出即可。

今日评论 网友评论仅供其表达个人看法,并不表明网站立场。
最新评论(0)
暂无评论


Copyright Media Today Group Pty Ltd.隐私条款联系我们商务合作加入我们

分享新闻电话: (02) 8999 8797

联系邮箱: info@sydneytoday.com 商业合作: business@sydneytoday.com网站地图

法律顾问:AHL法律 – 澳洲最大华人律师行新闻爆料:news@sydneytoday.com

友情链接: 华人找房 到家 今日支付Umall今日优选