李子豪 发表于 2020-3-29 11:15:18

有关计算圆周率的一道题求解和讲解一下

求解和讲解一下

墨羽岚 发表于 2020-3-29 11:45:33

本帖最后由 墨羽岚 于 2020-3-29 11:55 编辑

#include<stdio.h>
#include<math.h>

int main()
{
        double PI=1.0,j=3.0,t;//给分母赋初值,由于赋值左边不能是算式,所以先定义PI,最后将PI*4给PI就行
        int k=-1;//用于正负且可当做是分子
        printf("输入阈值t(0<t<1):");
        scanf("%lf",&t);//得到阈值
        do
        {
                PI+=k/j;//每一步进行计算
                j=j+2;//分母加2
                k=-k;//调整正负
        }while(fabs(k/j)>=t);//循环体
        PI=PI*4;//将循环体最后得到的PI*4后给真正的PI
        printf("%.6f",PI);//输出6位小数的PI
        return 0;//结束
}
OK了

李子豪 发表于 2020-3-29 12:02:55

墨羽岚 发表于 2020-3-29 11:45
OK了

运行时错误啊第4行

墨羽岚 发表于 2020-3-29 16:15:44

李子豪 发表于 2020-3-29 12:02
运行时错误啊第4行

没问题呀,你复制试试{:10_257:}

TJBEST 发表于 2020-3-29 16:37:26

墨羽岚 发表于 2020-3-29 11:45
OK了

他可能要iPython代码吧?你这个是C的

TJBEST 发表于 2020-3-29 16:54:11

gate = float(input('输入域值:'))
Pi = 0
signal = 1
num = 1
while True:
    Pi += (1/num)*(signal)
    if (1/num) < gate:
      break
    else:
      num += 2#奇数 等差
      signal *= -1#变号
Pi *= 4
print('{0:.6f}'.format(Pi))
输出结果为:
输入域值:0.000001
3.141595
>>>
和你所给例子有误差,我觉得应该是例子的问题。这个题没啥难度,不会算错的。

墨羽岚 发表于 2020-3-29 17:16:52

TJBEST 发表于 2020-3-29 16:37
他可能要iPython代码吧?你这个是C的

啊啊啊,看花了,看成c语言了,抱歉{:10_266:}

墨羽岚 发表于 2020-3-29 17:17:47

李子豪 发表于 2020-3-29 12:02
运行时错误啊第4行

对不起啊,我看花了,我这是c语言的,不是Python的{:10_266:}{:10_266:}
Python的楼下有大神发了,你可以看下

墨羽岚 发表于 2020-3-29 17:18:31

TJBEST 发表于 2020-3-29 16:37
他可能要iPython代码吧?你这个是C的

看到这种题下意识以为是c了{:10_266:}

TJBEST 发表于 2020-3-29 17:23:22

墨羽岚 发表于 2020-3-29 17:18
看到这种题下意识以为是c了

{:5_109:}C其实是基础,第一门语言一般都是C

李子豪 发表于 2020-3-29 18:03:23

爱你们
页: [1]
查看完整版本: 有关计算圆周率的一道题求解和讲解一下