この問題は階乗です。再帰関数を使えば、簡単なのですが大きい数字だと処理できないそうです。そのために他の方法でやるしかありません。もしnが0の場合は1を返す。 0より小さい場合はNoneを返し他の場合は階乗の計算を行います。
def factorial(n):
if n == 0:
return 1
elif n < 0:
return None
i = 1
while n >= 1:
i = i * n
n = n - 1
return i
ライブラリの方法
pythonではライブラリもあるようです。pythonはライブラリが豊富で非常に便利ですね。import math
def factorial(n):
if n >= 0:
return math.factorial(n)