求序列前N项和(15)

本文介绍了一个使用C语言编写的程序,该程序通过迭代的方式计算斐波那契数列的前n项之和,并展示了如何利用简单的数学运算实现这一功能。
#include<stdio.h>
int main()
{
	int n,i;
	double a,b,t;
	double sum;
	while(scanf("%d",&n)!=EOF)
	{
		if(n<1) continue;
		a=2.0; b=1.0; sum=0.0;
		for(i=0;i<n;i++)
		{
			sum+=a/b;
			t=a;
			a=a+b;
			b=t;
		}
		printf("%0.2lf\n",sum);
	}
	return 0;
}

以下是几种使用 C 语言序列序列2/1 + 3/2 + 5/3 + 8/5 + …,从第 2 起,每一子是子与母的母是子) N 的代码及方法: #### 方法一 ```c int main() { int n; scanf("%d", &n); double sum = 0; int p = 1, q = 2; for (int i = 0; i < n; i++) { sum += (double)q / p; int next_q = q + p; p = q; q = next_q; } printf("%.4lf\n", sum); return 0; } ``` 该代码通过循环遍历 N ,将每一转换为浮点数并累加到总中,最后输出总,精确到小数点后 4 位 [^1]。 #### 方法二 ```c #include "stdio.h" void beam() { int i, N, a; double sum = 0, m = 2.0, n = 1.0; scanf("%d", &N); for (i = 0; i < N; i++) { sum += m / n; a = m; m += n; n = a; } printf("%.2f\n", sum); } int main() { beam(); return 0; } ``` 此代码定义了一个函数 `beam`,在函数中使用循环计算 N ,最后输出结果,精确到小数点后 2 位 [^3]。 #### 方法三 ```c #include <stdio.h> int main() { int i = 1, N = 0; double sum = 0, a = 1, b = 2; scanf("%d", &N); while (i <= N) { double temp = 0; sum = sum + b / a; temp = b; b = a + b; a = temp; i++; } printf("%0.2lf", sum); return 0; } ``` 该代码使用 `while` 循环来计算 N ,同时注意使用 `double` 类型避免精度损失,最后输出结果,精确到小数点后 2 位 [^4]。 #### 方法四 ```c #include <stdio.h> int main() { int n, i; double a = 2, b = 1, sum = 0, temp; scanf("%d", &n); for (i = 1; i <= n; i++) { sum += 1.0 * a / b; temp = a; a = b + a; b = temp; } printf("%.2lf", sum); return 0; } ``` 此代码使用 `for` 循环计算 N ,使用 `double` 类型定义变量,避免编译器报错,最后输出结果,精确到小数点后 2 位 [^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值