递归兔子算法问题

q445620288 2016-04-13 11:15:19
建设最初有一对成年的兔子,成年的兔子每个月都可以生一对幼年兔子,假设a个月后小兔子能长成大兔子,求b个月后有多少对兔子,假设兔子都不会死亡
这个算法大概的思路要怎么写?
...全文
451 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
q445620288 2016-04-14
  • 打赏
  • 举报
回复

我自己写了一下,基本都是对的,但是题目中的第三组数据错误了,是不是类型问题,int存不下了,应该要怎么改?
#include<stdio.h>
int main()
{
int a,b;
int sum=0;
scanf("%d%d",&a,&b);
while(a!=0&&b!=0)
{
if(a>=b)
{
printf("%d\n",b+1);
}
else
{
sum=a+1;
for(int i=0;i<b-a;i++)
{
sum+=(i+2);
}
printf("%d\n",sum);
}
scanf("%d%d",&a,&b);
}
}
幻夢之葉 2016-04-13
  • 打赏
  • 举报
回复
我想问的是 一对兔子 两公的或者 两母的,不能生 一公一母,只能一直生 接下来的问题就是生下来的是公是母?
qq_33282385 2016-04-13
  • 打赏
  • 举报
回复
简单写了一个没用递归的
chehw_1 2016-04-13
  • 打赏
  • 举报
回复
数学归纳法: 0. 初始时有2只兔子。 1. 在第n个月时,因为a个月前的兔子都是成年兔子,所以(n - a)个月前的兔子均会翻倍: 当月(n)的兔子数 = 上月(n - 1)时的兔子数 + 第(n - a)月时的兔子数、


int rabbits_count(int n, int a)
{
	if(n < 1) return 2;	
	return rabs(n - 1, a) + rabs(n - a, a);
}

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧