李子豪 发表于 2020-3-29 12:21:04

圆周率的一道题看我错在哪了了

#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;//结束
}

永恒的蓝色梦想 发表于 2020-3-29 12:23:48

C往python里发,真行

李子豪 发表于 2020-3-29 12:24:45

永恒的蓝色梦想 发表于 2020-3-29 12:23
C往python里发,真行

这是一个人给我发的答案我学的python看不懂求python解法

永恒的蓝色梦想 发表于 2020-3-29 12:30:32

李子豪 发表于 2020-3-29 12:24
这是一个人给我发的答案我学的python看不懂求python解法

你不是要问错哪了吗?

李子豪 发表于 2020-3-29 12:31:46

永恒的蓝色梦想 发表于 2020-3-29 12:30
你不是要问错哪了吗?

我不会做求教

永恒的蓝色梦想 发表于 2020-3-29 12:44:46

from math import fabs
def func(t):
    PI=1.0
    j=3.0
    k=-1

    PI+=k//j
    j+=2
    k=-k
    while fabs(k//j)>=t:
      PI+=k//j
      j+=2
      k=-k
    return PI*4
def main():
    print('{:.6f}'.format(func(float(input("输入阈值t(0<t<1):")))))

李子豪 发表于 2020-3-29 13:11:52

永恒的蓝色梦想 发表于 2020-3-29 12:44


结果错误。。。。。。。。。。

txxcat 发表于 2020-3-29 14:04:36

pi=0
a=1
b=0
tv=float(input('输入阈值t(0<t<1):'))
while (1/a)>tv:
    pi+=(-1)**(b)*(1/a)
    a+=2
    b+=1
print('%.6f' % (pi*4))
页: [1]
查看完整版本: 圆周率的一道题看我错在哪了了