C语言编程用公式法求π,应该怎么做

① 公式π/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个回答  推荐于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);
    }
}

追问

good,算法简洁,一目了然

本回答被提问者采纳
第2个回答  2014-07-02
说实话,你的公式我都没看懂~汗颜了~
求圆周率其实不一定用这种方法的,给你扩展一下:
方法二:
方法三:追问

要求就是按公式做,这个公式好复杂

追答

不好意思,我现在才看到……
只是,我看不太懂,你那(1/2)是根号?不是乘啊?
然后我写到后来自己都不知道这个公式是什么样的了~

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网