zoukankan      html  css  js  c++  java
  • 7-15 计算圆周率

    7-15 计算圆周率(15 分)
    根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。
    π/2 = 1 + 1/3 + 2!/3*5 + 3!/3*5*7 + ⋯ + n!/(3*5*7*⋯(2*n+1)) + ⋯
    输入格式:

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

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

    0.01
    输出样例:

    3.132157


    题解1:

    def zi(x):
        i=1
        sum=1
        while i<=x:
            sum *= i
            i+=1
        return sum
    def mu(n):
        m=1
        while n > 1:
            m *= n
            n -= 2
        return m
    def main():
        fa = float(input())
        ans = 1
        x = 1
        tmp = 1#这里有点坑,如果这里tmp=fenzi/fenmu答案就错误了,
                #应该是少判断了一项吧
        while tmp >= fa:
            fenzi = zi(x)
            fenmu = mu(x*2+1)
            tmp = fenzi/fenmu
            ans += tmp
            x += 1
        ans=ans*2
        print("%.6f"%ans)
    
    main()

    题解2:

    zi,tmp1,tmp2,mu,sum,sum1=1,1,3,3,1,1
    fa = float(input())
    while sum1 > fa:
        sum1 = zi / mu
        sum = sum1 + sum
        tmp1+=1
        tmp2 = tmp2 + 2
        zi = zi*tmp1
        mu = mu * tmp2
    ans = sum*2
    print("%.6f"%ans)
  • 相关阅读:
    构建之法十五
    十二周学习总结笔记
    构建之法十四
    构建之法十一
    构建之法十三
    用户体验评价
    构建之法第十章
    十一周总结学习笔记
    找水王
    十周总结学习笔记
  • 原文地址:https://www.cnblogs.com/kzbin/p/9205270.html
Copyright © 2011-2022 走看看