计算2/1,3/2,5/3,8/5,13/8,21/13……前n项的和(仅用于讨论)

#include <stdio.h>
#include <stdlib.h>
#define add 5

int main(void)
{
	long n = 0, i = 0, ii = 1;
	double sum = 0.0;
	long double a = 1.0, b = 2.0;
	long double *p_ab = NULL;
	long double *p_Temp = NULL;

	p_ab = calloc(add,sizeof(long double));
	if (!p_ab)
	{
		return 1;
	}
	printf("你要计算前几项和:");
	scanf_s(" %ld", &n, sizeof(n));

	for (i = 0; i < n; ++i)
	{
		if (i >= add)
		{
			ii++;
			p_Temp = realloc(p_ab, ii*add*sizeof(long double));
			if (!p_ab)
			{
				free(p_ab);
				p_ab = NULL;
				return 1;
			}
			p_ab = p_Temp;
		}
		if (i == 0)
		{
			sum += b / a;
			p_ab[i] = a + b;
		}
		else if (i == 1)
		{
			sum += p_ab[i - 1] / b;
			p_ab[i] = p_ab[i - 1] + b;
		}
		else
		{
			sum += p_ab[i - 1] / p_ab[i - 2];
			p_ab[i] = p_ab[i - 1] + p_ab[i - 2];
		}
	}
	printf("%lf\n",sum);
	free(p_ab);
	p_ab = NULL;
	system("pause");
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值