web-dev-qa-db-ja.com

whileループで階乗を書くpython

私は新しく、Pythonについてあまり知りません。 whileループで階乗を書く方法を知っている人はいますか?

If/Elif elseステートメントで作成できます:

num = ...
factorial = 1

if num < 0:
   print("must be positive")
Elif num == 0:
   print("factorial = 1")
else:
   for i in range(1,num + 1):
       factorial = factorial*i
   print(num, factorial)

しかし、私はこれをwhileループ(関数なし)で実行したいと思います。

3
R overflow
while num > 1:
    factorial = factorial * num
    num = num - 1
3
John Gordon

結果を取得したいだけの場合: math.factorial(x)

Whileループ:

def factorial(n):
    num = 1
    while n >= 1:
        num = num * n
        n = n - 1
    return num
3
leongold
number = int(input("Enter number:"))
factorial = 1
while number>0:
    factorial = factorial * number
    number = number - 1
print(factorial)
0
dinesh palem

標準ライブラリを使用して簡単にします。

import math

print(math.factorial(x))
0
Max