代码:
#include&ltstdio.h&gt
int Fib(int n){//自定义函数
if(n&lt0)
return-1
else if(n==0)
return 0
else if(n==1)
return 1
else
return Fib(n-1)+Fib(n-2)
}
int main(){
int num
printf("请输入要求取的第n项斐波那契数列n=")
if(scanf("%d",&num)){
if(num&gt=0){
printf("%d",Fib(num))
}
else
printf("Error!!!")
return 0
}
return 0
}
扩展资料:斐波那契数列排列组合
有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第10级台阶有几种不同的走法
这就是一个斐波那契数列:登上第一级台阶有一种登法;登上两级台阶,有两种登法;登上三级台阶,有三种登法;登上四级台阶,有五种登法……
1,2,3,5,8,13……所以,登上十级,有89种走法。
类似的,一枚均匀的硬币掷10次,问不连续出现正面的可能情形有多少种?
答案是(1/√5)*{[(1+√5)/2]^(10+2)-[(1-√5)/2]^(10+2)}=144种。
求递推数列a⑴=1,a(n+1)=1+1/a(n)的通项公式
由数学归纳法可以得到:a(n)=F(n+1)/F(n),将斐波那契数列的通项式代入,化简就得结果。
参考资料:
百度百科——斐波那契数列
#include <stdio.h>
main( ){
long f1,f2,f;
int i,n
scanf("%d",&n)
f1=f2=1
if(n<=2)
f=1
else
for(i=3i<=ni++){
f=f1+f2
f1=f2
f2=f
}
printf("%ld\n",f)
}
波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、??在数学上,斐波纳契数列以如下被以递归的方法定义:
F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
#include#define
COL
5
//一行输出5个
long
fibonacci(int
n)
{
//fibonacci函数的递归函数
if
(0==n||1==n)
{
//fibonacci函数递归的出口
return
1
}
else
{
return
fibonacci(n-1)+fibonacci(n-2)
//反复递归自身函数直到碰到出口处再返回就能计算出第n项的值
}
}
int
main(void)
{
int
i,n
n=
17
printf("Fibonacci数列的前%d项\n",
n)
for
(i=0
i
{
printf("%-10ld",fibonacci(i++))
//调用递归函数并且打印出返回值
if(i%COL==0)
{
//若对COL取余等于0就换行,也就是控制每行输出多少个,
//而COL=10就是每行输出10个
printf("\n")
}
}
printf("\n")
return
0
}