c语言实现计算圆周率的近似值

2022-12-12 11:24:02 119 0
魁首哥

目录

  • C语言计算圆周率的近似值
  • 用C语言解“计算圆周率”题
    • 思路
    • 代码
  • 总结

    c语言计算圆周率的近似值

    用公式π/4=1-1/3+1/5-1/7+1/9-…,求圆周率π的近似值,直到上述级数最后一项的绝对值小于10^(−4) 为止

    #include<stdio.h>
    int main(void)
    {
    	float pi=0,t=1.0,n=1.0;
    	while(1/n&gphpt;=1e-4)//精度可以缩小,但计算时间会增加
    					//建议不小于1e-6
    	{
    		pi=pi+t*1.0/n;
    		//第一次循环:pi=0,pi=-1;
    		//t=-1;
    		//第二次循环:pi=1-1/3;
    		//t=1;
    		//第三次循环:pi=1-1/3+1/5;
    		//t=-1;
    		//第n次循环:。。。 
    		t=-1*t;
    		n+=2;
    	}
    	pi=pi*4;
    	printf("http://www.cppcns.comn=%f,pi=%f\n",n,pi);
    } 

    用C语言解“计算圆周率”题

    根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。

    ​​π/2=1 + 1 / 3 + 2! / (​3×5) + 3! / (3×5×7) +⋯+ n! / (3×5×7×⋯×(2n+1)) +⋯

    输入格式:

    输入在一行中给出小于1的阈值。

    输出格式:

    在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。

    输入样例:

    0.01

    输出样例:

    3.132157

    思路

    本题看起来很难,其实并不是太难,只需将分子分母分开计算,得出结果后在相除即可得出原本的分数值,进而再相加在加1则可算出π/2,在将结果除于2即可得出π的近似值

    代码

    #include <stdio.h>
    int main()
    {
        double a;
        scanf("%lf",&a);
        int i = 1;
        double fen_zi=1, fen_mu=1;
        double jie_guo=1, sum=0, s=0;
        while(a < jie_guo){
            fen_zi *= i;
            fen_mu *= (2*i+1);
            jie_guo = fen_zi / fen_mu;
            sum += jie_guo;
            i += 1;
        }
        s = (sum+1)*2;
        printf("%.6f",s);
        return 0;
    }

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    收藏
    分享
    海报
    0 条评论
    119
    上一篇:Android OKHttp源码解析Https安全处理 下一篇:浅析C++中static的一些用法

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码