發現這個問題,想嘗試執行,結果卡住了:
撰寫一個程式,讓您可以確定如果第一天消耗 5 噸,但第二天比前一天多 20%,多少天就足夠了 200 東西。
在 Python 中,使用回圈運算子、串列和函式。
我試過 def 函式,但我不知道它是否正確,我不知道如何得到它,以便當它增加 20% 時,新數字增加 20%,所以一直用新數字直到達到200
def day():
x=5
x = (x * 20/100)
print(x)
day()
這只是一半,我知道。
uj5u.com熱心網友回復:
宣告需要的變數
numberOfDays = 0
totalTons = 200
dayTonsUsed = 5
消耗噸并修改變數
while (totalTons > 0):
totalTons -= dayTonsUsed
dayTonsUsed *= 1.2 # Adding extra 20% of consumption for the next day
numberOfDays = 1
獲取總天數
print(f"Number of days needed {numberOfDays} days")
uj5u.com熱心網友回復:
您呼叫該函式一次,基本上 X 遞增一次,然后不再被參考。要增加 X 直到達到 >= 200 的值,您需要使用while回圈。代碼可能如下所示:
x = 5
dayscount = 1
while x < 200:
print(x)
print(dayscount)
dayscount = dayscount 1
x = x * (1 (20/100))
您也不一定需要在函式內定義,但如果這樣做,則需要在函式外定義 x 并將其設為全域變數。
uj5u.com熱心網友回復:
您嘗試實施的解決方案非常接近,但您實際上并沒有添加當天的值。你想要像下面這樣的東西:
def day(x):
return x (x * 20/100)
x = 5
currentSum = x
day = 1
while(currentSum < 200): # Loop until the amount consumed is more than 200
x = day(x)
currentSum = x
day = 1
print(day)
請注意,有一個更快的數學解決方案,但對于這個問題來說沒有必要,因為所有的數字都相當小。
uj5u.com熱心網友回復:
通過遞回,它可以這樣完成:
def day(n, x=5):
return 1 day(n-x, x*1.2) if n>0 else 0
day(200) # 13
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/537541.html
