我在用python编写的阶乘程序中出错

问题描述

我得到了错误的答案。

n = input()
factorial = 1
if int(n) > 1:
    for i in range (1,int(n)):
        factorial = factorial * i
print(factorial)

2 的预期输出为 2

但我得到了 1。请帮助我。

解决方法

range() 直到 n-1 而不是 n。因此,将 1 添加到 int(n)

n = input()
factorial = 1
if int(n) > 1:
    for i in range (1,int(n)+1): #added 1 to the upper limit
        factorial = factorial * i
print(factorial)
,

此代码也打印值 1

n = input()
factorial = 1
if int(n) >= 1: #added = symbol
    for i in range (1,int(n)+1): #added 1 to the upper limit
        factorial = factorial * i
print(factorial)