Если у меня есть значение A, которое увеличивается на 10% от его текущего значения, когда его забирает фиксированная величина B, как я могу рассчитать, сколько циклов потребуется для достижения 0 без фактического цикла?
Так вот, как бы я нашел его, выполнив цикл:
LoopsNeeded = 0
A = 100
B = 20
while A > 0:
C = A * 0.1
A = A + C
A = A - B
LoopsNeeded = LoopsNeeded + 1
print(LoopsNeeded)
В первом цикле:
initial values
A = 100
B = 20
-------
A > 0 = True
C = A(100) * 0.1 = 10
A = A(100) + C(10) = 110
A = A(110) - B(20) = 90
LoopsNeeded = 1
-------
A is now 90 on the next round of the loop
В результате потребуется 8 циклов витого, если я сделаю это с действительно большими числами, этот цикл может занять много времени, каков более короткий способ сделать это?