2017-09-24 6 views
-5
while count > 0: 
    if count = 0: 
     return n 
    elif count < 0: 
     print(" ") # prints empty if n is below 0 
    else: 
     count = count - 1 
     collect += math.ceil((n - 5)/2) 
    return collect 

入力は(1003,3) - 結果は499です。これはループを1回し、5を減算してから2で除算してから停止することを意味します。誰でも知っている理由は?なぜこのループは1回だけですか?

+6

'=' '=='ではありません。 – Chris

+0

はまだ動作しません – Gekz

+3

あなたもコード全体を表示していません。入力する_to what_? 'return'_from what_?あなたは本当にあなたのループの中で 'return 'したいですか? – Chris

答えて

1

あなたの内部の条件は、中に意味をなさない。そして、あなたはループ内にreturn文を持っています。だから、それは一回しかループしませんでした。この

スタート

import math 

n, count = (1003, 3) 
print("N = " + str(n)) 
while count > 0: 
    n = math.ceil((n - 5)/2) # Update this to do whatever your logic is 
    print(count, n) 
    count -= 1 
if n < 0: 
    print("N is negative") 
else: 
    print("N = " + str(n)) 
0

いくつかの問題があります。

まず、構文が均等にインデントされません。

第2に、ifステートメントは==の代わりに=です。変数に値を代入するための最初のもの、等価性をチェックするためのものです。

第3に、このループがどのような関数であっても終了するreturn文があります。

関連する問題