扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#include
创新互联是专业的丹东网站建设公司,丹东接单;提供网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行丹东网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
int
fib(int
n)//递归函数
{
//斐波那契数列算法
if(n==1||n==2)
return
1;
return
fib(n-1)+fib(n-2);
}
int
main()
{
int
n;
scanf("%d",n);
printf("%d\n",fib(n));
return
0;
}
#include "stdio.h"
int fb(int a1, int a2, int n); //斐波那契求和函数原型申明
int main()
{
int a, b, n, s;
scanf("%d%d%d", a, b, n);
s = fb(a, b, n);
printf("%d\n", s);
}
int fb(int a1, int a2, int n)
{
if(n==1)
return a1;
if(n==2)
return a2;
return fb(a1,a2,n-1)+fb(a1,a2,n-2);
}
#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=3;i=n;i++){
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起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
C语言源程序如下:
#includestdio.h
int main()
{
int array[100]={1,1};//斐波那契数列前两个元素均为0
int i=0;//循环变量
int n=20;//数列需要求的个数
int sum = 0;//和变量
for(i=2;in+1;i++)//按递推原理依次求出后续元素
{
array[i]=array[i-1]+array[i-2];//数列原理
}
printf("arr[1]-arr[%d] = ", n);//提示输出数列元素
for (i = 0; i n; i++)//遍历数列
{
printf("%d ",array[i]);//输出arr[1]-arr[n]元素内容
sum += array[i];//顺便进行求和
}
printf("\n%d ", sum);//输出求和结果
return 0;
}
程序运行结果如下:
扩展资料:
利用递归原理进行求斐波那契数列的求解和求前n项和:
#includestdio.h
int fibonacci(int n) //递归函数
{
if (n == 0 || n == 1)
return 1;
if (n 1)
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main()
{
int i = 0;
for (i = 0; i 30; i++)
{
printf("fibonacci(%d) = %d\n", i, fibonacci(i));
}
return 0;
}
你声明的fb函数,它的输入参数是一个数组
int fb(int a[])
但是你在调用的时候,却将一个值赋值给它,
s=fb(a[i]);
因此输入参数不匹配,会出现错误。
建议,在fb函数中,专门设置一个输入参数,用来表明数列的第几项,即
int fb(int a[], int n)
调用的时候,修改调用方式:
s=fb(a, i);
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流