带while循环的输出阶乘

时间:2017-03-01 01:58:44

标签: python python-3.x

我的代码应该接受输入,然后将阶乘输出到输入的数字

例如,如果输入为8,则输出为1,2,6,24,120,720,5040,40320。

我认为我为此设置了正确的功能,但是我只是得到了一个无穷无尽的负面循环。

limit=input('enter a value for limit:')
limit=int(limit)
ctr=0
factorial=1
while ctr < (limit):
    print (ctr, end=' ')
    factorial=factorial*ctr
    ctr=ctr-1
print("limit =", limit)

1 个答案:

答案 0 :(得分:0)

此代码中有一些问题:

  1. 为什么要打印计数器ctr而不是factorial
  2. ctr需要递增1而不递减:ctr = ctr + 1
  3. 在您的代码中,factorial将为0,因为您在第一次迭代时将阶乘乘以0。
  4. 这是一个应该有效的代码:

    limit=input('enter a value for limit:')
    limit=int(limit)
    ctr=1
    factorial=1
    while ctr <= limit:
        factorial=factorial*ctr
        print (factorial, end=' ')
        ctr=ctr+1