题目:
斐波那契数列问题:输入两个正整数m和n(1<=m<=n<=10000),输出第m项至第n项之间所有的Fibonacci数。Fibonacci序列(第1项起):1 ,1,2,3,5,8,13,21…。要求定义并调用函数fib(n),返回第n项Fibonacci数。例如,fib(7)的返回值是13。
考察知识:
1、函数的定义、声明和调用。
2、使用函数编写程序。
3、函数的实参、形参和返回值的概念及使用。
斐波那契数列:
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列: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 * )
代码:
#include<stdio.h>
int fib(int n)//函数功能:返回第n项的斐波那契数
{
if (n == 1)
return 1;
else if (n == 2)
return 1;
else
return fib(n - 2) + fib(n - 1);//函数递归
}
int main()
{
int m, n;
printf("输入两个正整数m和n(1<=m<=n<=10000):");
scanf("%d%d", &m, &n);
printf("从第%d项到%d项的Fibonacci数是:",m,n);
for (m; m <= n; m++)//利用循环遍历m到n之间的数
printf("%d ",fib(m));//调用函数
return 0;
}
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/0d62deca085039566d2cca96af0befea.png)