c语言帮助帮助一下子小白吧
发过一次了,但感觉没有满意的,用最简单的for,while,if这些语句怎么写{:10_266:} 本帖最后由 jackz007 于 2021-11-14 23:12 编辑#include <stdio.h>
double foo(void)
{
double d , e ;
unsigned long long i , n ;
for(d = e = i = n = 1 ; e >= 1e-6 ; i ++) {
n *= (2 * i + 1) ;
e = 1.0 * i / n ;
d += e ;
}
return 2.0 * d ;
}
int main(void)
{
printf("%lf\n" , foo()) ;
}
编译、运行实况:
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
3.000000
D:\00.Excise\C>
误差似乎有点大 本帖最后由 jhq999 于 2021-11-15 11:57 编辑
jackz007 发表于 2021-11-14 23:11
编译、运行实况:
误差似乎有点大
楼主题目都抄错了pi/2=1+1!/3+2!/(3*5)+3!/(3*5*7)+.......+n!/(3*5*7*...*(2*n+1))
double pi()
{
double i=1,j=0,k=1,sum=1,L=1;
for (i = 1; k < 1e+64; i++)
{
k*=(2*i+1);
L*=i;
sum+=L/k;
}
return sum*2;
}
int main(){
printf("%.7lf",pi());
return 0;
}
3.1415927
//如果k<10^6 结果四舍五入3.14
jhq999 发表于 2021-11-15 11:42
楼主题目都抄错了pi/2=1+1!/3+2!/(3*5)+3!/(3*5*7)+.......+n!/(3*5*7*...*(2*n+1))
没办法,题主提问题不认真,能够得到一个认真的答案就已经很不错了
问题都不对,怎么能期望得到一个正确答案呢
人造人 发表于 2021-11-15 12:04
没办法,题主提问题不认真,能够得到一个认真的答案就已经很不错了
问题都不对,怎么能期望得到一个正确 ...
这个我也没办法啊,老师布置的原题就是这样子的,谢谢各位了{:10_295:}{:10_266:}
页:
[1]