如何每隔一段时间将金额增加三倍?



我不知道如何将金额增加三倍。

第1个月付款1美元。

第2个月的付款2美元。(金额翻倍(

第3个月的付款6美元。(每隔一个月翻三倍(

第4个月的付款12美元。(金额翻倍(

第5个月的付款36美元。(每隔一个月翻三倍(

第6个月的付款72美元。(金额翻倍(

第7个月的付款216美元。(每隔一个月翻三倍( 等等...

我正在使用 for 和 if 语句。

base = 1
payments = int(input("For how many months did they say you will receive payments? "))

for i in range(0, payments):
if i % 2 > 0:
base *= 3 
else:
base *= 2 
month = "Month " + str(i + 1) + ":" + str(base)
print(month)

第 1 个月,我得到 2 美元,我希望得到 1 美元

您可以使用模运算符,在每个奇数条目上,将数量增加三倍。

base = 1
payments = 5
print("Month 1: %s" % base)
for i in range(2, payments):
if i % 2 == 1:
base *= 3
else:
base *= 2
print("Month %s: %s" % (i+1, base))

您可以使用要乘以的数字列表(2 和 3(,而分期付款小于输入。逻辑是在列表的两个数字之间交替,而条件为 true:

base = 1
payments = input("For how many months did they say you will receive payments? ")
x = 1
multiplyList = [2, 3]
print(f'Month {x}: $ {base}')
while x <= int(payments):
i = 0
for number in multiplyList:
base = (base * multiplyList[i])
print(f'Month {x}: $ {base}')
i = i + 1
x = x + 1
# output:
# Month 1: $ 1
# Month 1: $ 2
# Month 2: $ 6
# Month 3: $ 12
# Month 4: $ 36
# Month 5: $ 72
# Month 6: $ 216
# Month 7: $ 432
# Month 8: $ 1296
# Month 9: $ 2592
# Month 10: $ 7776

编辑:OP已经编辑了这个问题,以纳入新的尝试和 更改问题陈述,因此这已过时。

正如其他答案中提到的,您的方法有一些缺点,使其成为不理想的解决方案。

话虽如此,这是代码出错的地方:

从原始版本的精简版本开始:

base = 1
payments = 10
for i in range(payments):
month = "Month " + str(i + 1) + ":" + str(base)
base *= 2
if i in range(2, payments, 3):
base *= 3 
print(month)

你需要在这里结束:

base = 1
payments = 10
for i in range(payments):
month = "Month " + str(i + 1) + ":" + str(base)
if i in range(1, payments, 3):
base *= 3 
else:
base *= 2
print(month)

所需的更改是:

  • 使用range(2, ...)而不是range(1, ...)。 这是因为您打印和计算的方式最终会确定上个月的新基数。
  • *= 2移到else:语句中,这样就不会乘以 6

这有效:

base = 1
payments = int(input("For how many months did they say you will receive payments? "))
month = "Month " + str(1) + ":" + str(base)
print(month)
for i in range(1, payments):
if i % 2 > 0:
base *= 2 
else:
base *= 3 
month = "Month " + str(i + 1) + ":" + str(base)
print(month)

因为你直接进入了for循环,这意味着你第一个月翻了一番。但是,如果您在循环之前打印第一个量,从 2 开始循环,并交换模语句,它就可以工作。

此解决方案只有一个 print(( 语句来打印月份和金额,但它有一个if == 0 in the loop

您可以在循环中删除 if 语句,但必须在循环之前再添加一个打印行。

如果您不想打印中间结果,则可以从 1 开始范围,获取if i == 0的 IRD 并在离开 for 循环后打印结果。

base = 1
payments = int(input("For how many months did they say you will receive payments? "))

print(base)
for i in range(0, payments):
if i == 0:
pass
elif i % 2 > 0:
base *= 2
else:
base *= 3
msg = "Month " + str(i + 1) + ":" + str(base)
print(msg)

最新更新