只用if和for写斐波那契数列,并求所有项的和

本文介绍使用C语言实现斐波那契数列的两种方法:递归方式和数组方式。递归方式直观但效率较低,适用于理解算法原理;数组方式则能高效计算并返回斐波那契数列的前n项及其总和,适用于实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int i = 0;
	int n = 0;
	int n1 = 1;
	int n2 = 1;
	int m = 0;
	int sum1= 0;
	int sum2= 0;
	int sum3= 0;

	printf("请输入斐波那契的项数:\n");
	scanf(" %d", &n);
	printf("斐波那契数列为:\n");
	
	if(n>=1)
	{
		printf("%d ",n1);
		sum1 = n1;
	}
	 if (n >= 2)
	{
		 printf("%d ",n2);
		 sum2 = n2;
	}
	 if (n >= 3)
	{
	   for (i = 3; i <= n; i++)
	   {
			m = n1 + n2;
			printf("%d ", m);
			sum3 = sum3 + m;
			n1 = n2;
		/*printf("%d ", n1);*/
			n2 = m;
		/*	printf("%d\n ", n2);*/
	    }
	   printf("\n");
	 }
	 n1 = 1;
	 n2 = 1;
	 printf("所有项的和为:%d\n",sum1+sum2+sum3);
	return 0;
}

添加数组解法,能做到第92项

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
	long long int i;
	long long int n;
	long long int sum = 0;
	printf("请输入斐波那契项数:\n");
	scanf(" %lld", &n);
	long long int a[100];//n,行列数不能大于100
	for (i = 0; i < n; i++)
	{
			if (i == 0 || i == 1)
			{
				a[i] = 1;
				printf("%lld ", a[i]);
			}
			if (i > 1 )
			{
				a[i] = a[i - 1]+a[i -2];
				printf("%lld ", a[i]);
			}				
				sum += a[i];
	}
	printf("各项和为:%lld ", sum);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值