斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
在数学上,斐波那契数列被以如下递推的方法定义:
F(1)=1
F(2)=1
F(n)=F(n-1)+F(n-2)(n ≥ 3)
请完成程序,用递归方法计算斐波那契数列第n项
的值,并统计所需的递归调用次数
。
函数接口定义:
long Fib(int n);
函数返回斐波那契数列第n
项的值。
部分程序样例:
这里给出主函数及对Fib函数的调用样例:
#include <stdio.h>
long Fib(int n);
int count=0;
int main()
{
int n;
long f;
scanf("%d", &n);
f = Fib(n);
printf("Fib(%d)=%ld, count=%d\n", n, f, count);
return0;
}
输入格式:
从键盘输入一个正整数n
。
输出格式:
输出斐波那契数列第n项的值
,及所需的递归调用次数
,中间以逗号分隔。
输入样例:
6
输出样例:
Fib(6)=8, count=15
#include <stdio.h>
int count=0;
int main()
{
int n;
long f;
scanf("%d", &n);
f = Fib(n);
printf("Fib(%d)=%ld, count=%d\n", n, f, count);
}
int Fib(int n)
{
count++;
if(n==1||n==2)
return 1;
else
return Fib(n-1)+Fib(n-2);
}