2016-06-04 8 views
-2

Liste der Zahlen num und druckt alle Zahlen von num in der Reihenfolge, bis die Summe der gedruckten Zahlen 100 überschreitet. Ich muss die Funktion mit umschreiben eine while-Schleife und kann ich nicht für, Pause oder Rückkehr verwenden.
Wenn die Summe der Zahlen kleiner oder gleich 100 ist, werden alle Zahlen in der Liste gedruckt. Unten enthält mein Versuch der Frage (was falsch ist ...), und die Ausgänge, die ich erreichen möchte. Ich würde gerne Ihre Ideen darüber, wie Sie versuchen würden, das Problem zu lösen oder Ihren Rat über die Logik meines Codes. Vielen Dank im Voraus: DAlle Zahlen in einer Liste drucken, wenn die Summe dieser Zahlen 100 übersteigt.

def print_hundred(nums): 
""" Hundy club """ 
total = 0 
index = 0 

while index < nums[len(nums)]: 
    print(nums) 
    total += nums[index] 


else: 
    if total > 100: 
     print(total) 


print_hundred([1, 2, 3])  
print_hundred([100, -3, 4, 7]) 
print_hundred([101, -3, 4, 7]) 



test1 (Because the sum of those numbers are still less than 100) 
1 
2 
3 

test2 (100 - 3 + 4 = 101, so the printing stops when it exceeds 100) 
100 
-3 
4 

test3 (Already exceeds 100) 
101 
+2

Ist es eine Hausaufgaben Frage? –

+0

Ich gehe über Abschlussprüfungen und es ist eine der Fragen. – chuddles

Antwort

0

Dies ist nicht der eleganteste Weg sein kann, dies zu tun, aber Ihre Einschränkungen gegeben, das ist so gut wie es geht -

def solve(arr): 
    index = 0 
    total = 0 
    end = len(arr) 
    flag = False 
    while index < len(arr) and not flag: 
     total += arr[index] 
     index += 1 
     if total > 100: 
      end = index 
      flag = True 
    print(*arr[0:end], sep = ' ') 


solve([100, -3, 4, 7]) 
solve([1, 2, 3]) 
solve([101, -3, 4, 7]) 

Ausgang -

100 -3 4 
1 2 3 
101 
0

ich habe diesen Code bekam das auch funktioniert:

def solve(l): 
    i=-1 
    j=0 
    cur=[] 
    while (i<(len(l)-1) and sum(cur)<=100): 
     i+=1 
     j=l[i] 
     if sum(cur)+j>100: 
      pass 
     print(j, end=" ") 
     cur.append(j) 
    print() 
solve([100, -3, 4, 7]) 
solve([1, 2, 3]) 
solve([101, -3, 4, 7]) 
Output

:

100 -3 4 
1 2 3 
101 
Verwandte Themen