Der "Haupt" -Code funktioniert, um jeden einzelnen Binomialkoeffizienten zu berechnen, es sei denn (n = k + 1). Es ist irrsinnig - es sagt, es gibt eine Division durch Null Fehler, aber ich kann nicht sehen, warum. der Fehler tritt in der Hauptfunktion auf (d = n2/c). Irgendeine Idee warum?Binomialkoeffizienten - Division durch Nullfehler
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()
Beachten Sie, dass ich die Berechnungen selbst implementieren muss, damit ich keine Bibliotheken verwenden kann.
Danke für schnelle Antwort, Problem gelöst –