CK001-神奇兔子序列

代码骑士
优质创作者: 游戏开发技术领域
2023-01-01 16:32:44

一、问题描述 

二、问题分析

一月有一对新生的兔子,二月这对兔子成熟,三月可产下另一对兔子,所以三月就有两对兔子;四月因为上月新生的兔子还没成熟所以由一月降生二月成熟的兔子继续生育,四月就有2+1=3对对兔子;五月三月的兔子成熟可以产一对兔子,二月成熟的兔子还可以继续生育,所以五月有3+2=5对兔子;六月四月的兔子成熟了可以产一对兔子,三月的兔子成熟可产一对兔子,二月的兔子还可产一对兔子,所以六月有5+3=8对兔子,以此类推,从三月开始,每个月产下的兔子对数是前两个月兔子对数的和。

建立模型:

当前月兔子对数 = 上一个兔子对数 + 上一个的上一个月兔子对数 (当前月份大于等于3)

 图解:

三、算法设计

循环实现:

#include<stdio.h>
const int N=20;

int main()
{
	int a[N];
	a[1]=1;
	a[2]=1;
	for(int i=3;i<=12;i++)
	{
		a[i]=a[i-1]+a[i-2];	
	}	
	printf("%d",a[12]);
	return 0;
}

递归实现:

#include<stdio.h>

int Fibonacci(int n)
{
	if(n<=0) return -1;
	else if(n==1) return 1;
	else if(n==2) return 1;
	else if(n>2) return Fibonacci(n-1)+Fibonacci(n-2);
}

int main()
{
	int n=12;
	int fib = Fibonacci(n);
	if(fib==-1) printf("输入错误,请重新输入。");
	else printf("%d",fib);
	return 0;
}

 

...全文
28 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5

社区成员

发帖
与我相关
我的任务
社区描述
考研408:数据结构、计算机组成原理、操作系统、计算机网络
学习方法考研面试 其他
社区管理员
  • 代码骑士
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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