Python脚本,将一个数字增加一个百分比,然后使用一个新数字直到目标



我发现了这个问题,想尝试执行,但卡住了:

编写一个程序,让您确定如果第一天消耗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

相关内容

  • 没有找到相关文章

最新更新