c语言求斐波那契数列n项以及前n项和

斐波那契数列的定义

f(n)=f(n-1)+f(n-2);     (n>1)

n=0;  f(0)=0;

n=1;   f(1)=1

自定义函数

递归写法

fbi()此函数求x项的斐波那契数

 int fbi( int x)//斐波那契
{
	if (x <= 0)
		return 0;
	else if (x == 1)
		return 1;
	else
		return fbi(x - 1) + fbi(x - 2);
		
}

int sum_fbi(int x)//此函数求斐波那契数列前x项的和

int sum_fbi(int x)//求和
{
    if (x <= 0)
        return 0;
    int s = 0;
    for (int i = 0; i <= x; i++)
    {
        s = s + fbi(i);
    }
    return s;
}

非递归写法

int arr_2[20] = { 0,1 };
	for (int i = 2; i < 20; i++)
	{
		arr_2[i] = arr_2[i - 1] + arr_2[i - 2];
	}
	for (int i = 0; i < 20; i++)
	{
		printf ( " %d ",arr_2[i] );
	}
	int sum = 0;
	for (int i = 0; i < 20; i++)
	{
		sum = sum+arr_2[i];
	}
	printf(" sum %d", sum);

主函数

int main()
{
	int x = 6;

	printf("斐波那契数列前15项为:");
	for (int i = 1; i <= 15; i++)
	{
		printf(" %d ", fbi(i));
	}
	printf("\n");
	printf("斐波那契数列前%d项和为%d", x, sum_fbi(x));
	system("pause");
	return 0;


}

运行结果

 

数据结构练习代码如有错误欢迎指正

编译器是Microsoft Visual Studio 2019

  • 11
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值