找下 错误 利用 PI/2=1+1!/3+2!/(3*5)+3!/(3*5*7)+4!/(3*5*7*9)+.当某项小于
来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/07/02 20:34:00
找下 错误 利用 PI/2=1+1!/3+2!/(3*5)+3!/(3*5*7)+4!/(3*5*7*9)+.当某项小于1E-6 求圆周率 PI
#include
int fact (int n);
int multi ( int n);
main ()
{ int i;
double sum ,item,eps ;
eps=1E-6;
sum=1;
item=1;
for ( i=1; item>=eps;i++)
\x05{ item=fact(i)/multi(2*i+1);
sum=sum+item;
}
printf ("PI=%0.5lf\n",sum*2);
return 0;}
int fact (int n)
{ int i;
int res=i;
for (i=0;i
#include
int fact (int n);
int multi ( int n);
main ()
{ int i;
double sum ,item,eps ;
eps=1E-6;
sum=1;
item=1;
for ( i=1; item>=eps;i++)
\x05{ item=fact(i)/multi(2*i+1);
sum=sum+item;
}
printf ("PI=%0.5lf\n",sum*2);
return 0;}
int fact (int n)
{ int i;
int res=i;
for (i=0;i
![找下 错误 利用 PI/2=1+1!/3+2!/(3*5)+3!/(3*5*7)+4!/(3*5*7*9)+.当某项小于](/uploads/image/z/3802521-57-1.jpg?t=%E6%89%BE%E4%B8%8B+%E9%94%99%E8%AF%AF+%E5%88%A9%E7%94%A8+PI%2F2%3D1%2B1%21%2F3%2B2%21%2F%283%2A5%29%2B3%21%2F%283%2A5%2A7%29%2B4%21%2F%283%2A5%2A7%2A9%29%2B.%E5%BD%93%E6%9F%90%E9%A1%B9%E5%B0%8F%E4%BA%8E)
大致就是下面这样子,答案可能有点出入.
#include
double/*int改为double*/ fact (int n);
double/*int改为double*/ multi ( int n);
main ()
{
\x05int i;
\x05double sum ,item,eps ;
\x05eps=1E-6;
\x05sum=1;
\x05item=1;
\x05for ( i=1; item>=eps;i++)
\x05{
\x05\x05item=fact(i)/multi(2*i+1);
\x05\x05sum=sum+item;
\x05}
\x05printf ("PI=%0.5lf\n",sum*2);
\x05return 0;
}
double/*int改为double*/ fact (int n)
{
\x05int i;
\x05int res=1;//i改为1
\x05for (i=1;i
再问: 请问下为什么要把int 改成double 不是数据类型会自动转换吗
再答: 参考资料:如果赋值运算符两侧的数据类型不致,在赋值前,系统将自动先把右侧表达式求得的数值按赋值运算符左边变量的类型进行转换,也可以用强制类型转换的方式人为地进行转换后再赋值给左边的变量。 也就是说,如果不把int改为double的话,系统会先行计算fact(i)/multi(2*i+1)的值,注意,这时这里算出来的值类型为int,然后系统再将它转化成double,小数点后面的位数就全部是0了。 也可以不把int改成double,将fact(i)/multi(2*i+1)强制转换成double,如:(double)fact(i)/multi(2*i+1)。
#include
double/*int改为double*/ fact (int n);
double/*int改为double*/ multi ( int n);
main ()
{
\x05int i;
\x05double sum ,item,eps ;
\x05eps=1E-6;
\x05sum=1;
\x05item=1;
\x05for ( i=1; item>=eps;i++)
\x05{
\x05\x05item=fact(i)/multi(2*i+1);
\x05\x05sum=sum+item;
\x05}
\x05printf ("PI=%0.5lf\n",sum*2);
\x05return 0;
}
double/*int改为double*/ fact (int n)
{
\x05int i;
\x05int res=1;//i改为1
\x05for (i=1;i
再问: 请问下为什么要把int 改成double 不是数据类型会自动转换吗
再答: 参考资料:如果赋值运算符两侧的数据类型不致,在赋值前,系统将自动先把右侧表达式求得的数值按赋值运算符左边变量的类型进行转换,也可以用强制类型转换的方式人为地进行转换后再赋值给左边的变量。 也就是说,如果不把int改为double的话,系统会先行计算fact(i)/multi(2*i+1)的值,注意,这时这里算出来的值类型为int,然后系统再将它转化成double,小数点后面的位数就全部是0了。 也可以不把int改成double,将fact(i)/multi(2*i+1)强制转换成double,如:(double)fact(i)/multi(2*i+1)。
找下 错误 利用 PI/2=1+1!/3+2!/(3*5)+3!/(3*5*7)+4!/(3*5*7*9)+.当某项小于
利用pi/4 = 1 - 1/3 + 1/5 - 1/7 + ...,编程计算pi的近似值,直到最后一项的绝对值小于10
C++利用公式pi/4=1-1/3+1/5-1/7+、、、、、、求pi的近似值,直到最后一位的绝对值小于10的—8次方
C++ 利用公式PI/4=1-1/3+1/5-1/7+...计算PI的近似值.
利用PI/2=2/1×2/3×4/3×4/5……的前100项之积计算PI的值,用C语言编写
用vb求pi/4 = 1-1/3+1/5-1/7+...公式求pi的近似值,直到最后一项绝对值小于10-6为止
怎么用matlab利用这个公式 pi/4=1-1/3+1/5-1/7+...+1/21求pi的值呀?
(全题)已知sin(α+3pi/4)=5/13,cos(pi/4-β)=3/5,且-4/pi小于α小于pi/4,pi/4
用下面的近似公式求Pi的近似值,直到第n项绝对值小于10~5为止.Pi/4=1-1/3+1/5-
利用公式求pi公式:π/4=1-1/3+1/5-1/7.直到绝对值小于10^-7为止运行以后没有任何输出,回车也没反应,
利用pi/2=2/1 *2/3 *4/3 *4/5 *6/5 *6/7*...的前100项之积,编程计算p的值.
已知Sin(2x+pi/3)=1/3,求Sin(5Pi/6-4x),