C语言用循环求斐波函数 用循环实现斐波那契数列

利用循环算出斐波那契数列的前十三项和的c语言程序斐波那契数列的第一项是0,第二项是1,从第三项开始当前项是相邻前两项之和 。根据这一规律 , 可用一for循环 , 用两个int型变量a、b始终记录当前项和前一项的值,并累加当前项求和就可解决此题 。代码如下:
#include "stdio.h"
int main(int argc,char *argv[]){
int i,s,a,b;
for(s=a=0,b=i=1;i13;i++){//i13控制计算前13项
s+=b;//当前项b与和s累加
b+=a;//求下一项
a=b-a;//求下一项的前一项
}
printf("The result is %d\n",s);
return 0;
}
运行结果如下图:
用C语言求斐波那契数列前500项我可以得知以下几点:
斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13 … , 从第三项开始,每一项都等于前两项之和 。
用C语言求斐波那契数列的一种常见方法是使用递归函数,即定义一个函数fib(n),返回第n项的值,然后在函数体中调用fib(n-1)和fib(n-2) 。
这种方法虽然简单,但是效率很低,因为会重复计算很多次相同的值 。例如,要计算fib(5),就要先计算fib(4)和fib(3),而计算fib(4)又要先计算fib(3)和fib(2),这样就浪费了时间和空间 。
另一种方法是使用数组或变量来存储已经计算过的值,避免重复计算 。例如,定义一个数组a[500] , 初始化a[0]=1,a1=1,然后用循环从第三项开始依次计算并存入数组中:a[i]=a[i-1]+a[i-2] 。
c语言,编程实现,求斐波那契数列,1,1,2,3,5,8,......的前20项及前20项和C语言源程序如下:
【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; in; 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 (n1)
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main()
{
int i = 0;
for (i = 0; i30; i++)
{
printf("fibonacci(%d) = %d\n", i, fibonacci(i));
}
return 0;
}
请编程实现:求斐波那契数列的前15项,每行输出5个 。这是c语言?。。∮醚酚锞?/h2>这是利用循环语句C语言用循环求斐波函数的
#include stdio.h
int main()
{
long fab_1 = 0;
long fab_2 = 1;
print ("%l\t%l", fab_1, fab_2);//输出前两项
int i = 3;
for( ; i16; i ++ )//循环从第三项开始
{
if( i / 5 == 0)
{
print( "\n");
}
long fab_result = fab_1 + fab_2;
print( "%l\t", fab_result);
fab_1 = fab_2;
fab_2 = fab_result;
}
return 0 ;
}
谁能给我斐波那契数列的c语言,要用for循环嵌套的C语言,用for循环,求Fibonacci数列前40个数的程序如下:#include int main(void){ int a=1,b=1,t=0; printf("%d,",a); printf("%d,",b); for(int i=0;i38;i++){t=a+b;printf("%d,",t);a=b;b=t; } return 0;}
用C语言编程 斐波那契数列:1,1,2,3,5 , 8,13…,输出前13项,每行输出5个数 。public class FeiBoMethod {