Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 二项式系数-零误差除法_Python 3.x_Divide By Zero_Binomial Coefficients - Fatal编程技术网

Python 3.x 二项式系数-零误差除法

Python 3.x 二项式系数-零误差除法,python-3.x,divide-by-zero,binomial-coefficients,Python 3.x,Divide By Zero,Binomial Coefficients,“主”代码用于计算每个二项系数,除非(n=k+1)。这是令人难以置信的-它说有一个零除误差,但我不明白为什么。错误发生在主功能中(d=n2/c)。知道为什么吗 def getInteger( prompt ): while True: try: num = int( input(prompt)) except ValueError: print( "That is not an integer -- plea

“主”代码用于计算每个二项系数,除非(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()

请注意,我需要自己实现计算,因此无法使用库。

您的阶乘函数对于输入0,1不正确。这两个函数都返回0,而这两个函数都应返回1