① 公式π/6=1/2+(1/2)*1/3*(1/2)3+(1/2*3/4)*1/5*(1/2)5+(1/2*3/4*5/6)*1/7*(1/2)7……;
② 编程求π的近似值,当数列的最后一项小于10-6为止;输出π值,小数点后保留6位有效数字。
给你提个思路:
在这个公式中有几个关键点:
每一项中有一个规律变化数字1,3,5,7,后面应该是9,11........;可以用i=1; i+=2;来表示。
每一项中都有规律变化分数相乘1/2 × 3/4 ×......这个乘法的截止方法为分母<i。
可以根据以上方法列出计算循环代码,最后一项小于10-6为跳出循环条件;追问
在这个公式中有几个关键点:
每一项中有一个规律变化数字1,3,5,7,后面应该是9,11........;可以用i=1; i+=2;来表示。
每一项中都有规律变化分数相乘1/2 × 3/4 ×......这个乘法的截止方法为分母<i。
可以根据以上方法列出计算循环代码,最后一项小于10-6为跳出循环条件;追问
能写个核心的代码吗,可以提高悬赏
追答午休的时候给你写吧!现在有事。
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-09-14
#include <>
main()
{
double pi = 3, x = 3;
int i;
for(i = 1; x > 0.000001; i++) {
x *= 0.25*(2*i-1)*(2*i-1)/(2*i)/(2*i+1);
pi += x;
printf("PI = %lf\n", pi);
}
}追问
main()
{
double pi = 3, x = 3;
int i;
for(i = 1; x > 0.000001; i++) {
x *= 0.25*(2*i-1)*(2*i-1)/(2*i)/(2*i+1);
pi += x;
printf("PI = %lf\n", pi);
}
}追问
good,算法简洁,一目了然
本回答被提问者采纳第2个回答 2014-07-02
说实话,你的公式我都没看懂~汗颜了~
求圆周率其实不一定用这种方法的,给你扩展一下:
方法二:
方法三:追问
求圆周率其实不一定用这种方法的,给你扩展一下:
方法二:
方法三:追问
要求就是按公式做,这个公式好复杂
追答不好意思,我现在才看到……
只是,我看不太懂,你那(1/2)是根号?不是乘啊?
然后我写到后来自己都不知道这个公式是什么样的了~