1. 网上查询资料说明什么是fibnacci数列?
斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89...
这个数列从第3项开始,每一项都等于前两项之和。
斐波那契数列的定义者,是意大利数学家莱昂纳多·斐波那契(Leonardo Fibonacci),生于公元1170年,卒于1250年,籍贯是比萨。他被人称作“比萨的莱昂纳多”。1202年,他撰写了《算盘全书》(Liber Abacci)一书。他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点于阿尔及利亚地区,莱昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯等地研究数学。另外斐波那契还在计算机C语言程序题中应用广泛。
2. 给出fibnacci数列的递归表达式。
fib(n)=0 当n=0时
fib(n)=1 当n=1时
fib(n)=fib(n-1)+fib(n-2) 当n>1时
3. 用C语言递归实现Fib(n)。
代码
#include <stdio.h>
long Fib (int n);
int main(void)
{
int n;
long result;
scanf("%d",&n);
result = Fib(n);
printf("%ld\n",result);
}
long Fib (int n)
{
long f;
if(n==0) f=0;
else if(n==1) f=1;
else f=Fib(n-1)+Fib(n-2);
return f;
}
运行结果
fib(100),fib(1000),fib(10000)计算量太大,使用递归计算耗费时间过长