2017-03-01 112 views
-3

我的代碼應該採取的輸入,然後輸出的階乘到輸入的號碼輸出階乘與while循環

例如,如果輸入是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) 
+0

@ TigerhawkT3是啊,CTR = CTR + 1只是增加了0,1,2,3 ......多達無論輸入 –

+0

1.打印'factorial'而不是'ctr',2.使用'ctr = ctr + 1',3.在此代碼中階乘將始終爲0 –

+0

@ tigerhawkt3因此用階乘代替print(ctr,end =''), –

回答

0

有幾件事情是錯誤的驗證碼

  1. 你爲什麼要打印計數器ctr,而不是factorial
  2. CTR需要由1遞增,並不會減少:ctr = ctr + 1
  3. 在你的代碼,factorial將是0,因爲你在第一次迭代的階乘乘以0。

下面是應該工作代碼:

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