我发现了这个问题,想尝试执行,但卡住了:
编写一个程序,让您确定如果第一天消耗5吨,但第二天比前一天多20%,多少天足够200个东西。
在Python中,使用循环操作符、列表和功能。
我尝试使用def函数,但我不知道它是否正确,我不知道如何使它增加20%时,新数字也增加20%,所以一直使用新数字,直到达到200
def day():
x=5
x += (x * 20/100)
print(x)
day()
我知道这只是一半。
声明需要的变量
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")
你调用函数一次,基本上X递增一次,然后不被再次引用。要增加X直到达到值>= 200,您需要使用while
循环。代码可以像这样:
x = 5
dayscount = 1
while x < 200:
print(x)
print(dayscount)
dayscount = dayscount + 1
x = x * (1+(20/100))
你也不一定需要在函数内定义,但是如果你这样做了,你就需要在函数外定义x,并使它成为一个全局变量。
你试图实现的解决方案,是非常接近的,但你实际上并没有从天添加值。您需要如下内容:
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)
注意,有一个更快的数学解决方案,但对于这个问题来说不是必需的,因为所有的数字都相当小。
对于递归,可以这样做:
def day(n, x=5):
return 1 + day(n-x, x*1.2) if n>0 else 0
day(200) # 13