华师一附中OI组
标题:
求e=1+1/1!+1/2!+1/3!****1/100!
[打印本页]
作者:
admin
时间:
2014-11-4 19:10
标题:
求e=1+1/1!+1/2!+1/3!****1/100!
# include <iostream>
using namespace std;
int a[105],s[105]; //定义了一个105个数字的数组,a[0]表示10^0即个数,a[1]表示10^-1即十分位,同理**,预留1-2位最后四舍五入。
int i,j,k; //临时变量 i循环位数,k循环除数
int x; //中转变量
int main()
{
a[0]=1;
s[0]=1;
for (k=1; k<=100; k++)
{
x=0;
for (i=0; i<=104; i++)
{
x=10*x+a[i];
a[i]=x/k;
x=x%k;
}
for (i=0; i<=104; i++) s[i]=s[i]+a[i];
for (i=104; i>0; i--)
{
x=s[i];
s[i]=x%10;
s[i-1]=s[i-1]+x/10;
}
}
if (s[101]>=5)
{
s[100]++;i=100;
while ((s[i]>9) && (i>0))
{
x=s[i];
s[i]=x%10;
s[i-1]=s[i-1]+x/10;
i--;
}
}
cout <<s[0]<<'.';
for (i=1; i<=100; i++) cout<<s[i];
return 0;
}
复制代码
欢迎光临 华师一附中OI组 (http://hsyit.cn/)
Powered by Discuz! X3.2