Ⅰ 在c语言中,如何利用数组求斐波那契数列的前20项
#include<stdio.h>
intmain()
inti,fib[20]={0,1};
for(i=2;i<20;i++)
fib[i]=fib[i-2]+fib[i-1];
printf("%d",fib[19]);return0;
#include<stdio.h>
void main()
{long sum=0;
long a[20];
int i;
a[0]=1;a[1]=1;
for(i=2;i<20;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<20;i++)
sum=sum+a[i];
printf("%ld",sum);
}
数列与矩阵
对于斐波那契数列1、1、2、3、5、8、13、……。有如下定义
F(n)=F(n-1)+F(n-2)
F(1)=1
F(2)=1
对于以下矩阵乘法
F(n+1) = (1,1 ) (F(n),F(n-1))T
F(n) =(1,0 ) (F(n),F(n-1))T
它的运算就是右边的矩阵 (1,1)乘以矩阵(F(n),F(n-1)),右边的矩阵(1,0 ) 乘以矩阵(F(n),F(n-1)),得到:
F(n+1)=F(n)+F(n-1)
F(n)=F(n)
以上内容参考:网络-斐波那契数列
Ⅱ 用C语言求斐波那契数列第n项
#include<stdio.h>
//求斐波那契数列第n项
intfib(intn)
{
if(n==0||n==1)
return1;
else
return(fib(n-1)+fib(n-2));
}
intmain()
{
inti,n;
printf("-----输入一个斐波那契数----- ");
scanf("%d",&n);
for(i=0;i<n;i++)
printf("%d ",fib(i));
printf(" ");
return0;
}
编译结果:
./a.out
-----输入一个斐波那契数-----
8
1 1 2 3 5 8 13 21
Ⅲ 用c语言计算fibonacci数列的前50项和
#include"stdio.h"
intmain(){
longintf1,f2,i;
f1=1;f2=1;//赋初始值
for(i=1;i<=20;i++){//循环20次,一次两个,结果为前50项
printf("%12d%12d",f1,f2);//输出两项
f1=f1+f2;f2=f2+f1;//计算下面两项
if(i%2==0)//一行四个好看用
printf(" ");
}
return0;
}
(3)c语言计算菲比那契数列扩展阅读
C语言程序Fibonacci数列计算兔子:
#include<stdio.h>
#defineYEAR12
intmain()
{
intf[YEAR+1]={0,1,2};//1月和2月兔子对数分别初始化为1,2,不使用f[0]
intmonth;
for(month=3;month<=YEAR;month++)//从3月份开始计算每个月总兔数
{
f[month]=f[month-1]+f[month-2];
}
for(month=1;month<=YEAR;month++)//输出12个月的总兔对数
{
printf("%d ",f[month]);
}
printf(" sum=%d ",f[YEAR]);//输出年末的兔子总数
return0;
}
Ⅳ ,c语言:利用数组求斐波那契数列的前20项
代码如下:
int a[20]={1,1};
printf(“%d %d ”,a[0],a[1]);
for(int i=0;i<20;i++)
{
printf(“%d ”,a[i]=a[i-1]+a[i-2]);
}
(4)c语言计算菲比那契数列扩展阅读:
如何掌握C语言基础知识及技巧:
首先准备一台PC,学编程一般对PC没有太大的要求,一般主流的配置就好。
有了电脑之后,就得考虑安装什么操作系统了,主流使用的操作系统是windows,不过在这里不建议学习C编程使用windows,建议使用Linux。所以学习者最好安装双系统,或者彻底习惯Linux系统。
不管学习哪门编程语言,都建议学习者必须有一本关于此语言的全面知识的书籍,大一般采用的是谭浩强老师的《C语言程序设计》,还有 《C语言C++学习指南》从入门到精通(语法篇)视频课程在线学习等,建议学习者可以去仔细研读
Ⅳ c语言.计算斐波那契数列的前n项和(s),四种方法
方法2:
#include <stdlib.h>
#include <stdio.h>
int Fibon1(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return Fibon1(n - 1) + Fibon1(n - 2);
}
}
int main()
{
int n = 0;
int m=0;
int ret = 0;
printf("请输入要计算的斐波那契数列的前N项总数:");
scanf("%d", &n);
m=n;
do
{
ret += Fibon1(n);
n--;
} while (n>0);
printf("前%d项目和ret=%d", m,ret);
getchar();
getchar();
return 0;
}
运行结果:
Ⅵ 用C语言表达斐波那契数列,怎么做
#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
",f);
}
Ⅶ C语言 计算fibonacci数列
C语言程序代码如下:
#include <stdio.h>
main()
{
long int f1,f2;
int i;
f1=1;
f2=1;
for (i=1;i<=9;i++)
{
printf("%ld %ld ",f1,f2);
if (i%3==0) printf("
");
f1=f1+f2;
f2=f2+f1;
}
return 0;
}
if语句是使输出6个数后换行。因为i是循环变量,当i为偶数时换行,因此i每隔2换一次行相当于每输出6个数后换行。
输出结果如下
Ⅷ c语言,编程实现,求斐波那契数列,1,1,2,3,5,8,......的前20项及前20项和
C语言源程序如下:
#include<stdio.h>
int main()
{
int array[100]={1,1};//斐波那契数列前两个元素均为0
int i=0;//循环变量
int n=20;//数列需要求的个数
int sum = 0;//和变量
for(i=2;i<n+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("
%d ", sum);//输出求和结果
return 0;
}
程序运行结果如下:
(8)c语言计算菲比那契数列扩展阅读:
利用递归原理进行求斐波那契数列的求解和求前n项和:
#include<stdio.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
", i, fibonacci(i));
}
return 0;
}
Ⅸ 斐波那契数列的通项公式在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保存,限于整型范围,计算很大值时会出现溢出。 根据实际需要选择类型。