Задать вопрос
@clazy

Вопрос на Python (for i in range())?

Решаю задачки на курсе, условие такое:
На вход программе подается три натуральных числа
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 сидел примерно, не смог разобраться)
  • Вопрос задан
  • 867 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
@twistfire92
Python backend developer
i равно 0 на первой итерации
подставляйте
0+1 = 1 (первое число в строке)

(50/100 +1)**0 = 1
10*1 = 10 (второе число в строке)

вот и получили 1 10

Если хотите начать с 1 а не с нуля, пишите
range(1,n+1)
print(i, m * (p / 100 + 1) ** i)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
gulov-yusuf
@gulov-yusuf
Программист-любитель.
Предлагаю такой вариант решения задачи. Единственным недостатком программы является то, что количество организмов не может быть десятичным числом, хотя в задаче не требуется округлять значения.

m = int(input('Стартовое количество организмов: '))
p = int(input('Среднесуточное увеличение в %: '))
n = int(input('Количество дней для размножения: '))

for i in range(n):
  m=m+m*(p/100)
  print(f"Количество организмов через {i+1} дн.: {m}")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы