【问题标题】:Binomial coefficients - Division by zero error二项式系数 - 除以零误差
【发布时间】:2017-03-11 19:50:31
【问题描述】:

“主”代码用于计算每个二项式系数,除非 (n = k + 1)。令人难以置信——它说除以零错误,但我不明白为什么。错误发生在主函数( d = n2 / c )中。知道为什么吗?

def getInteger( prompt ):
    while True:
        try:
            num = int( input(prompt))
        except ValueError:
            print( "That is not an integer -- please try again")
            continue
        return num   

def factorial(f):
    f = f
    q = (f - 1)
    fac = (f * q)
    while (q) > 1:
        q -= 1
        fac = (fac * q)
    return (fac)


def main():
    n = getInteger("enter a factor:")
    k = getInteger("enter a factor:")
    while n >= k :
        n2 = factorial(n)
        k2 = factorial(k)
        a = n - k
        b = factorial(a)
        c = b * k2
        d = n2 / c
        print("n2 = {} k2 = {} a = {} b = {} c = {} d = {}" .format(n2, k2, a, b, c, d)  )
        return
    else:
        print("n must be larger than k")

if __name__ == '__main__':
    main()    

main()

请注意,我需要自己实现计算,所以我不能使用库。

【问题讨论】:

    标签: python-3.x divide-by-zero binomial-coefficients


    【解决方案1】:

    您的阶乘函数对于输入 0,1 不正确。它对它们都返回 0,而对它们都应该返回 1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-17
      相关资源
      最近更新 更多