(ACM) u Calculate e

本文介绍了一种使用C语言实现的简单数学公式来计算e值的方法,并展示了如何通过迭代不同数量的项来获得越来越精确的e值近似。文章提供了一个完整的C语言程序示例,用于计算当n从0到9时e值的近似。

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

##Problem Description ##
A simple mathematical formula for e is
这里写图片描述
where n is allowed to go to infinity. This can actually yield very accurate approximations of e using relatively small values of n.

Output

Output the approximations of e generated by the above formula for the values of n from 0 to 9. The beginning of your output should appear similar to that shown below.

Sample Output##

n e


0 1
1 2
2 2.5
3 2.666666667
4 2.708333333

Source

Greater New York 2000

题意

题目要求根据公式求出在0·9时,e的值。

#include <stdio.h>
int Fact(int i); 
double Sum(int n);
int main() 
{
	int n;
	double e,s;
	printf("n e\n");
	printf("- -----------\n");
	for(n=0;n<=9;n++)
	{
		if(n==0||n==1)
		{
			e=Sum(n);
			printf("%d %.0lf\n",n,e);
		}
		else if(n==2)
		{
			e=Sum(n);
			printf("%d %.1f\n",n,e);
		}
		else
		{
			e=Sum(n);
			printf("%d %.9lf\n",n,e);
		}
	}
	return 0;
}
int Fact(int i)
{
	int k;
	double m=1;
	if(i==0||i==1)
	{
		m=1;
	}
	else
	{
		for(k=1;k<=i;k++)
		{
			m=m*k;
		}
	}
	return m;
}
double Sum(int n)
{
	int i;
	double e=0,s;
	for(i=0;i<=n;i++)
	{
		s=1.0/(Fact(i));
		e=s+e;
	}
	return e;
}

心得

在做这道题的过程中,使用了函数调用,前几次编写代码,在运行过程中0到1所求的e的值都是正确的,从2开始e的值就出错了(e=2.00000000000),经过多次检查代码后,在声明函数Sum(int n)类型时,没有考虑到所得结果为浮点小数,而定义了函数类型为int,最后将int改为double类型后得出正确答案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值