① c语言编写计算斐波那契(Fibonacci)
斐波那契数列为:0,1,1,2,3,5,8,13.....
/*你的程序*/
#include<stdio.h>
int fib(int n,int f)
{
if(n==1&&n==2) /*n不可能同时等于1和2,所以递归无终点,会一直递归下去。*/
{f=1;} /*正确的斐波那契数列是n==1时f=0,n==2时f=1*/
else
{f=fib(n-1,f)+fib(n-2,f);}
return f;
}
int main()
{
int n,f; /*n没有赋初始值*/
f=fib(n,f);
printf("%d",f);
return 0;
}
/*改正后的程序*/
#include<stdio.h>
int fib(int n,int f)
{
if(n==1)
{
f=0;
}
else if(n==2)
{
f=1;
}
else
{
f=fib(n-1,f)+fib(n-2,f);
}
return f;
}
int main()
{
int n,f;
scanf("%d,%d",&n,&f);
f=fib(n,f);
printf("%d",f);
return 0;
}
② C语言斐式数列
额。那个提示是指测试数据组的循环格式,不是像你那么用的。
下贴我的代码,希望可以帮助到你:
#include<stdio.h>
intmain(void)
{
intn,i,fib[2];
while(scanf("%d",&n)&&n!=-1)
{
fib[0]=0,fib[1]=1;
for(i=1;i<=n;i++)
{
intt=fib[0]+fib[1];
fib[0]=fib[1];
fib[1]=t;
}
printf("%d ",fib[0]);
}
return0;
}
③ 求出斐波那契数列前20项的C语言程序 快帮帮忙哦
斐波那契数列的递推公式为Fn=Fn-1+Fn-2,F1=F2=1
int
a,b,F,i,S20;
a=b=1;
S20=a+b;
for(i=3;i<=20;i++){
F=a+b;a=b;b=F;S20+=F;}
这个S20就是所求的前20项和。
④ 编一个c语言程序,求数列的第10项的值以及前10项之和. f1=f2=1 fn=f(n-1)+f(n-2) (n>2)
#include <stdio.h>
int main()
{
int i, p = 1, q = 0, sum = 0;
for(i=0; i<10; ++i)
{
q = p + q;
p = q - p;
sum += q;
}
printf("%d %d", q, sum);
}
⑤ C语言如何用数组求Fibonacci数列的前N项和
1、首先打开vc,点击文件、新建;
⑥ 数据结构(c语言完成) 已知数列的递归表达式 Fn=2F(n-1)+nF(n-2) F0=0,F1=1要求精确计算数列第N项。
斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1) int Fun(int n) { if(n==0) { return 0; } else if(n==1) { return 1; } else {...
⑦ 数据结构(c语言完成) 已知数列的递归表达式 Fn=2F(n-1)+3F(n-2)+F(n-3) F0
C语言程序:
#include<stdio.h>
voidmain()
{
doublef0=0,f1=0,f2=1,f3;
inti,n;
scanf("%d",&n);
if(n==1||n==2)
{
printf("%d",0);
return;
}
if(n==3)
{
printf("%d",1);
return;
}
for(i=4;i<=n;i++)
{
f3=2*f2+3*f1+f0;
f0=f1;
f1=f2;
f2=f3;
}
printf("%.0lf ",f3);
}
运行测试:
⑧ 在c语言中fn[21] = {0, 1, 1}是什么意思
这就是定义了一个数组,共有21个元素,并且初始化前三个元素的值为0,1,1。
看起来是有点像求一个斐波纳契数列的程序段吧。如果是这样的话,其实他只需要定义前两个元素就可以了,然后从第三个元素开始每个元素对值都等于前两个元素之和。
⑨ 用C语言数组编写一个程序实现求Fibonacci数列的前n个数。
#include <iostream>
using namespace std;
void main()
{
int n;
cout<<"请输入n的值:\t";
cin>>n;
int fun(int n);
cout<<fun(n)<<endl;
}
int fun(int n)
{
if (n==1||n==2)
return 1;
else
return (fun(n-1)+fun(n-2));
}
望采纳
⑩ 斐波那契数列的通项公式在C语言中如何表达
斐波那契数列在数学上的通项公式为
An=An-1+An-2
在C语言中,根据算法实现不同,可以有很多种表达方式。以计算斐波那契第N项值为例,说明如下。
一、以数组方式实现:
intfn(intn)
{
int*a,i,r;
a=(int*)malloc(sizeof(int)*n);//分配动态数组。
a[0]=1;
a[1]=1;//初始化前两项。
for(i=2;i<n;i++)
{
a[i]=a[i-1]+a[i-2];//这里就是通项公式的一种实现形式。
}
r=a[n-1];//保存结果
free(a);//释放动态数组
returnr;//返回结果值。
}
二、以递归函数形式:
intfn(intn)
{
if(n==0||n==1)return1;//前两项固定值。
returnfn(n-1)+fn(n-2);//通过递归调用实现通项公式。
}
三、注意事项:
1、方法有很多,不可能穷举完成,写代码时要灵活使用。
2、例子中以int保存,限于整型范围,计算很大值时会出现溢出。 根据实际需要选择类型。