兔子生崽问题:裴波纳契数列的另一种使用,数组传递【转载】
(2016-11-17 15:57:17)兔子生崽
实验内容:假设一对小兔的成熟期是一个月,即一个月可长成成兔,那么,如果每对成
兔每个月都可以生一对小兔,一对新生的小兔从第二个月起就开始生兔子,试问从一对兔子
开始繁殖,以后各月的可有多少对兔子?
实验说明:这是13世纪意大利Fibonacci借助民间的“兔子生崽”问题引入的一个著名的
递推数列即Fibonacci数列。采用递推分析法:第0个月兔子对数f(0)=1;第1个月兔子对数
f(1)=2;第2个月兔子对数f(2)=3;第n个月兔子对数f(n)=f(n-1)+f(n-2)
运行效果:一对兔子开始繁殖,以后各月的兔子对数:
不用子函数计算结果:
1 2 3 5 8 13 21 34 55 89 144 233
用子函数计算结果:
1 2 3 5 8 13 21 34 55 89 144 233
目的要求:体会递推算法是把科学或工程计算中数学模型转变为计算机运算模型的重要
方法。掌握数组、指针的编程,求各月的有多少对兔子用或不用一个子函数实现。以后实验
都必须采用模块化的程序设计方法,每个子任务对应一个子函数,完成总任务的程序由一个
主函数和若干子函数组成,主函数起任务调度的总控作用。理解模块化程序设计方法,掌握
函数的实现、调用编程技术。
答案:
调用子函数:
#include
int fun(int n)
//用递归算法求斐波那契数列
{
if(n==0)
return 1;
//n=0的时候是一只兔子
else
if(n==1)
return 2;
//n=1的时候是两只只兔子
else
return
fun(n-1)+fun(n-2);
//从n=2开始,每个月的兔子数量都是前两个月相加
}
void
main()
{
}
不调用子函数:
#include
void main()
{
原网址:
https://zhidao.baidu.com/question/442796366.html