如何使输出数字与阶乘结果匹配
How to make the output numbers match the factorial results
我接到了一项任务,要使用循环编写程序。用户输入 1-98 之间的数字,然后输出是该数字的阶乘。如果用户输入的不是上述数字,则要求用户重新输入适当的数字。现在,当用户输入适当时,出现的输出与阶乘结果不匹配。
here's the picture of that error
这是代码
num = int(input("Input Number (1-98) : "))
Factorial = 1
for a in range(1,num+1):
if 0 < num < 99:
Factorial = Factorial*a
else :
print("input does not match, Repeat input (1-98)")
num = int(input("Input Number (1-98) :"))
print ("The factorial of", num, "is", Factorial)
你能帮我解决这个问题吗?
您必须将输入部分和计算部分
分开
num = -1
while not (0 < num < 99):
num = int(input("Input Number (1-98) :"))
Factorial = 1
for a in range(1, num + 1):
Factorial = Factorial * a
print("The factorial of", num, "is", Factorial)
原因是
- 你输入了
99
- 循环运行所有值,计算阶乘直到 98
else
说 "input does not match"
- 循环是否结束,但你将计算的阶乘保存在内存中并从那里开始
先设置值不满足条件再重复询问直到输入满足条件:
num = 0
while num < 1 or num > 98:
num = int(input("Input Number (1-98) : "))
factorial = 1
for a in range(1, num):
factorial = factorial * (a+1)
print (f"The factorial of {num} is {factorial}")
那么就不需要乘以 1,所以我们从 1 开始,始终乘以 a+1(这样就避免了一次迭代)。
range(1..num) 生成从 1 到 num -1 的数字。因此,如果我们乘以 a+1,我们将有效地乘以 2 到 num 范围内的数字,这就是我们想要的。
最后是一种现代的字符串输出方式
我接到了一项任务,要使用循环编写程序。用户输入 1-98 之间的数字,然后输出是该数字的阶乘。如果用户输入的不是上述数字,则要求用户重新输入适当的数字。现在,当用户输入适当时,出现的输出与阶乘结果不匹配。
here's the picture of that error
这是代码
num = int(input("Input Number (1-98) : "))
Factorial = 1
for a in range(1,num+1):
if 0 < num < 99:
Factorial = Factorial*a
else :
print("input does not match, Repeat input (1-98)")
num = int(input("Input Number (1-98) :"))
print ("The factorial of", num, "is", Factorial)
你能帮我解决这个问题吗?
您必须将输入部分和计算部分
分开num = -1
while not (0 < num < 99):
num = int(input("Input Number (1-98) :"))
Factorial = 1
for a in range(1, num + 1):
Factorial = Factorial * a
print("The factorial of", num, "is", Factorial)
原因是
- 你输入了
99
- 循环运行所有值,计算阶乘直到 98
else
说"input does not match"
- 循环是否结束,但你将计算的阶乘保存在内存中并从那里开始
先设置值不满足条件再重复询问直到输入满足条件:
num = 0
while num < 1 or num > 98:
num = int(input("Input Number (1-98) : "))
factorial = 1
for a in range(1, num):
factorial = factorial * (a+1)
print (f"The factorial of {num} is {factorial}")
那么就不需要乘以 1,所以我们从 1 开始,始终乘以 a+1(这样就避免了一次迭代)。 range(1..num) 生成从 1 到 num -1 的数字。因此,如果我们乘以 a+1,我们将有效地乘以 2 到 num 范围内的数字,这就是我们想要的。
最后是一种现代的字符串输出方式