问题描述
我正在尝试制作计算用户输入数字阶乘的 while 循环。但是现在我的程序采用第一个输入数字的阶乘,并在计算下一个阶乘时使用该结果。关于如何修复它的任何想法?
这是我目前所拥有的:
factorial=1
n=1
while True:
num=int(input("Enter number: "))
if num<=0:
print("Thank you!")
break
while n<num:
n+=1
factorial*=n
print(factorial)
解决方法
factorial
和 n
值不会在循环中重置为其默认值。它们存储前一次迭代的值并在当前迭代中使用它们。
您必须在 factorial
循环中包含 n
和 while
while True:
n = 1
factorial = 1
num=int(input("Enter number: "))
if num<=0:
print("Thank you!")
break
while n<num:
n+=1
factorial*=n
print(factorial)
,
有很多方法可以做到,但要保持代码不变,您需要重置 factorial
和 n
的值
factorial=1
n=1
while True:
num=int(input("Enter number: "))
if num<=0:
print("Thank you!")
break
while n<num:
n+=1
factorial*=n
print(factorial)
# reset the values------------->>
factorial=1
n=1