1+1/3!+1/5!+……+1/(2n+1)!,直到最后一项小于0.000001,并统计一共计算了多少项

急!!!!!!!!!!!!!!!谢了!!!!!!!!!!!

第1个回答  2010-11-08
不知道你要用什么语言,给你用两种语言写了
下面是C语言的
#include"stdio.h"
main()
{
int n=1;
long m=1;
double s=0,a;

do
{
a=1.0/m; //求当前项
s=s+a; //当前项加到s上
m=m*(++n)*(++n);//求下一项的分母x*(n+1)*(n+1+1),此时n=n+2
}while(a>=0.000001);//直到当前项a>=0.000001结束循环

printf("1+1/3!+1/5!+……+1/(2n+1)!=%f,m=%d\n",s,n/2+1);//n/2+1为当前项数
}

运行结果:1+1/3!+1/5!+……+1/(2n+1)!=1.175201,m=7

下面是C++语言的
#include<iostream>
using namespace std;

int main()
{
int n=1;
long m=1;
double s=0,a;

do
{
a=1.0/m; //求当前项
s=s+a; //当前项加到s上
m=m*(++n)*(++n);//求下一项的分母x*(n+1)*(n+1+1),此时n=n+2
}while(a>=0.000001);//直到当前项a>=0.000001结束循环

cout<<"1+1/3!+1/5!+……+1/(2n+1)!="<<s<<",m="<<n/2+1<<endl; //n/2+1为当前项数
return 0;
}

运行结果和C语言的是一样的。
第2个回答  2010-11-07
#include"stdio.h"
main()
{
int i,k=1,m=0;
float s=0,t;
long x;
do
{
x=1;
for(i=1;i<=k;i++)
x=x*i;
t=1.0/x;
s=s+t;
k+=2;
m++;
}while(t>=0.000001);
printf("1+...1\\(2n+1)=%f,m=%d",s,m);
}
m是一共计算的项本回答被提问者采纳

1+1\/3!+1\/5!+……+1\/(2n+1)!,直到最后一项小于0.000001,并统计一...
m=m*(++n)*(++n);\/\/求下一项的分母x*(n+1)*(n+1+1),此时n=n+2 }while(a>=0.000001);\/\/直到当前项a>=0.000001结束循环 printf("1+1\/3!+1\/5!+……+1\/(2n+1)!=%f,m=%d\\n",s,n\/2+1);\/\/n\/2+1为当前项数 } 运行结果:1+1\/3!+1\/5!+……+1\/(2n+1)!=1....

...+1\/(2n+1)!,直到最后一项小于0.000001,并统计一共?
int main(){ int i = 1, j;float sum = 1;while (1.0 \/ Fact(i) >= 0.000001){ i += 2;sum += 1.0 \/ Fact(i);} j = 1 + (i - 1) \/ 2;printf("计算结果为%f\\n", sum);printf("一共用了%d项\\n", j);} long Fact(int n){ long ans;if (n > 0){ ans...

...数e=1+1\/3+1\/5+1\/7+…+1\/n,到最后一项绝对值小于10的-4次方为止...
define ER 0.0001 \/\/允许的误差 int main(){ float e=0.0,et=0.0;int n=1;et=1.0;\/\/et=1\/(2n-1),即每次的增量 while(et>ER){ e+=et;n++;et=1.0\/(2*n-1);} printf("e=%f",e);printf("\\npress any key to exit:\\n");getch();return(0);} 补充,递增的部分...

...一项的值小于0.000001为止。通项公式是n!\/(2n+1)!
include <stdio.h>int main(void){ double sum,t; int i; for(sum=0,t=i=1;t>=1.0E-6;i++) t*=i,(t\/=(i+i+1.0))\/=(i+i),sum+=t; printf("The result is %g\\n",t); return 0;}

利用泰勒级数计算sinx的值,要求最后一项的绝对值小于,并统计出此时累加...
sign=-sign;\/\/控制正负 i++;\/\/累加项个数 }while((nr\/factorial(dm))>=1e-5);printf("sin(x)=%.3f,count=%d\\n",sin,i);system("pause");} \/\/函数功能:计算阶乘 double factorial (double n){ double s=1;int i;for(i=2;i<=n;i++)s*=i;return s;} ...

...1\/7 + ... ,编程计算pi的近似值,直到最后一项的绝对值小于10-4为 ...
你的问题主要是类型的问题。因为a 是int型的,你在计算的时候不转型成浮点型是不对的(1\/a=0)因此你要写成:pi=pi+1.0\/(2*a-1);pi=pi-1.0\/(2*a-1);还有判断条件:while ((1.0\/a)>1e-4);另外,你注意了没有这个公式是pi\/4所以为了得到要求的输出,你要写:printf("pi = %f...

sin(x)=x-x3\/3!+x5\/5!-x7\/7编程并计算sin(x)的值,要求最后一项的绝对...
b=-b;b=x\/n; \/\/b的符号并没有变 b=b*x*x\/(n+1)\/(n+2); \/\/阶乘计算的不对哦,n一直都没变 === 我重写一下代码仅供参考 float x,result,tmp;int n=1,t=1;do { tmp=x*t\/n;x=-x;t+=2;n*=(n++)(n++);result += tmp;} while(tmp>1e-7);printf("result=...

...\/3!+x5\/5!-x7\/7!+……+(-1)nx2n+1\/(2n+1)!+…… 编程并计算sin(x...
循环之前,加一句 a=x ;对了请轻戳此处 ↓ 请采纳。

请用c语言编写一个函数fun功能是:计算n门课程的平均分,计算结果作为函 ...
float fun(float a[],int n){ int i;float s=0,t;for(i=0;i<n;n++)s=s+a[i];t=s\/n;return(t);}

编程计算e的近似值,直到最后一项的绝对值小于10^-5时为止,输出e的值并...
pi=pi+1.0\/(2*a-1);pi=pi-1.0\/(2*a-1);还有判断条件:while ((1.0\/a)>1e-4);另外,这个公式是pi\/4所以为了得到要求的输出,要写:printf("pi = %f\\ncount = %d\\n",pi*4,a);2、#include<stdio.h> main(){ double pi=0,i=1,j=1,x;do{ x=j\/i;j=-j;i+=2;p...

相似回答