c语言圆周率计算法(用C语言实现计算圆周率)

圆周率,大家都不陌生吧,也就是“Pi”,用符号π来表示,一般就是数字3.14159265...,今天小编就来聊一聊关于c语言圆周率计算法?接下来我们就一起去研究一下吧!

c语言圆周率计算法(用C语言实现计算圆周率)

c语言圆周率计算法

圆周率,大家都不陌生吧,也就是“Pi”,用符号π来表示,一般就是数字3.14159265...

那这道编程题呢,相对于之前学过的编程题目而言,难度有所提升。

主要目的就是如文章标题写的那样,要计算圆周率。

没错,圆周率是可以计算出来的。

打出公式比较复杂,我直接把题目给贴上来好了。

梳理逻辑

这道题目的要求是什么,是输入小于1的阈值,然后在一行中输出满足阈值条件的近似圆周率,输出小数点后6位,而近似圆周率满足公式中的最后一项的值要小于给定的阈值。

比方说给定阈值0.01,那么计算圆周率的最后一项如果小于0.01,就到此为止,然后把该圆周率的值给打印出来。

1、输入小于1的阈值,那显然是要用到float浮点型来表示输入阈值的数据类型了。

2、关键难度在于如何得到最后一项,以及如何得到pi的值。

我们可以仔细观察,最后一项其实是由n的阶乘去除以所有奇数的乘积。

n的阶乘我之前讲过,就是从第一个数开始乘起乘到最后一个数。

而所有奇数的乘积也相对简单,就是从第一个奇数开始乘起乘到最后一个奇数。

3、保留小数点后六位,那就是要用到%0.6f来表示了。

代码实现

//计算圆周率 #include<stdio.h> int main(){ float n; float m=1;//n! float q=1; float pi=1; float w=0; scanf("%f", &n);//阈值 int i = 1; for(w = 1; w >= n;i ){ q = q*(2*i 1); m = m*i; w = m/q; pi = pi w; } printf("%0.6f",2*pi); }

可以发现,这里只需要用到一个for循环即可,至于求n的阶乘与所有奇数的乘积,相对来说也是比较简单的,就是用数值本身去乘以相应的公式即可。

结果测试总结

总的来说,这道题目并没有想象中的那么难,关键还是题目的逻辑要盘清楚,否则就会像我最开始做题时犯的错误一样,容易出现问题。

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页