【发布时间】:2017-07-26 15:54:16
【问题描述】:
我有一个初始值,它每年以一定的百分比增长(5.5%)。我的程序需要仅使用 while 循环打印出初始值比原始值大 2、3 和 4 倍的年份。到目前为止,我正在使用三个 while 循环来查找初始值何时比原始值大 2、3 和 4 倍,但到目前为止它可以工作,但它看起来确实是重复的。这是我目前所拥有的:
anum 123.45 #initial value
anum2 = initial * 2 #supposedly the numbers to indicate when the initial value has doubled, tripled, quadrupled etc.
anum3 = initial * 3
anum4 = initial * 4
initialYear = 2017
year = initialYear #year counter
while anum <= anum2: #make the loop stop before going further than two times greater than initial value
growth = anum * 0.055
anum = growth + anum
year += 1
print("Overall points will be 2 times 2017 points in {:d} years ({:d}).".format\
(year - 2017, year))
while anum <= anum3:
growth = anum * 0.055
anum = growth + anum
year += 1
print("Overall points will be 3 times 2017 points in {:d} years ({:d}).".format\
(year - 2017, year))
while anum <= anum4:
growth = anum * 0.055
anum = growth + anum
year += 1
print("Overall points will be 4 times 2017 points in {:d} years ({:d}).".format\
(year - 2017, year))
有没有一种方法可以让这个过程使用嵌套的 while 循环来减少其整体重复性?
非常感谢任何帮助!
【问题讨论】:
-
我认为您不需要嵌套循环。我认为您只需要将三个循环合并为 1。
标签: python math optimization while-loop