有必要解决指数运算的问题
我在一个Python初学者课程中遇到了一个问题。
你有两个选择:一次性支付100万美元,或者选择1美分,这个1美分每天翻倍,持续30天(每天的金额都会翻倍)。
你需要写一个程序来计算翻倍后的金额,以确定哪种情况下得到的金额更大。
我的尝试:
i = 0.01
for i in range(31):
day = i
day_1 = day * (2 ** 2)
print(i)
我不知道怎么让程序计算每一天的金额,直到第30天,除了为每一天单独指定金额——这样代码会变得非常长(每一天一行),我觉得应该有一个命令可以更快地完成这个计算。
i = 0.01
for i in range(31):
day = i
day_1 = day * (2 ** 2)
print(i)
2 个回答
-1
首先,我觉得用i作为你的起始值并不是个好主意,因为i通常用作循环的计数器。你可以试试下面这个:
value = 0.01
step = 1
while step < 30:
value = value * 2
step = step + 1
print(value)
0
你可以使用这段代码:
start = 0.01
temp = start
for i in range(0, 30):
temp = temp*2
print(temp)
这段代码会有一个起始值,并把这个起始值赋给一个临时变量。接下来,在接下来的30天里,它会把这个临时变量的值每一天都翻倍,最后完成时打印出总的金额。