Решаю задачки на курсе, условие такое:
На вход программе подается три натуральных числа
1)m: стартовое количество организмов;
2)p: среднесуточное увеличение в %;
3)n: количество дней для размножения.
Напишите программу, которая предсказывает размер популяции организмов. Программа должна выводить размер популяции в каждый день, начиная с 1 и заканчивая n-м днем.
Входные данные:
10
50
6
Выходные данные:
1 10.0
2 15.0
3 22.5
4 33.75
5 50.625
6 75.9375
У меня получился вот такой код:
m,p,n = [int(input()) for i in range(3)]
for i in range(n):
print(i + 1, m * (p / 100 + 1) ** i)
Ответ правильный(подсмотрел решения, т.к. долго сидел над задачей), но я даже подсмотрев решение не могу понять, почему программа мне выдаёт "1 10.0", дальше, после "1 10.0" всё понятно в принципе.
Как мне кажется в 1 варианте "1 10.0" должны выдать "1 15.0"
Если не сложно можете подсказать пожалуйста и если есть возможно ещё вариантов решения задачи подсказать( а то часов 6 сидел примерно, не смог разобраться)
Предлагаю такой вариант решения задачи. Единственным недостатком программы является то, что количество организмов не может быть десятичным числом, хотя в задаче не требуется округлять значения.
m = int(input('Стартовое количество организмов: '))
p = int(input('Среднесуточное увеличение в %: '))
n = int(input('Количество дней для размножения: '))
for i in range(n):
m=m+m*(p/100)
print(f"Количество организмов через {i+1} дн.: {m}")