楼上的算出来结果比我的大,主要是因为他用double 来声明的,有效位数比long float少,而且用浮点数的时候本来就会有误差,所以用一个整型的分母比较精确点!
# include
main()
{ long float s=0;
int n=1, deno=1 ;/*deno 是分母*/
do
{
s=s+(long float)1/deno; /*(long float)是强制类型转换,如果不转换的话 1/deno的结果为0*/
deno=deno*(deno+1);
n++;
}
while(n<=100) ;
printf("%lf\n",s) ;
getch();
}
我运行过了,如果有什么问题HI我!
对了这里的long float 等同于double 是旧版本里的表示方法!
#include
int main()
{
double result =0;
for(int i=1;i<=100;i++)
result += a(i);
printf("%lf",result);
getch();
return 0;
}
double a(int n)
{
double a =1;
for(int i=1;i<=n;i++)
{
a = a*i;
}
double result = 0;
result = 1/a;
return result;
}
楼上看清楚了,分母是n的阶乘啊!你写的程序也未免太简单了 吧!这个应该是求不出来的,会溢出!!
int main()
{
double i;
double sum=0;
double a=1;
for(i=1;i<=100;i++)
{
a=a*i;
sum=sum+1/a;
}
cout<
#include
int main(){
double i,s,l;
s=0;l=1;
for(i=1;i<=100;i++){
l/=i;
s+=l;
}
printf("%lf\n",s);
getchar();
return 0;
}
给,已经编译运行确认:
#include
#include
#define N 100
int main(int argc, char* argv[])
{
double e=1,t=1;
int t1;
for (t1=2;t1<=N;++t1)
{
t*=(double)1/t1;
e+=t;
}
printf("%lf",e);
getch();
return 0;
}
运行后的结果:
1.718282
#include
void main ()
{
double i,j;
for(i=1,j=1;i<=100;i++)
{i=i*(i+1);
j=j+1/i;
}
printf("%f",j);
}
我运行了一下,可以用。