Проверка домашнего задания на Цикл While
Сделал домашнее задание на цикл while.
Ниже будет код, но мне хотелось бы чтобы вы предложили свой вариант, чтобы сравнить как можно было бы сделать тоже самое, и получше понять цикл while. Если у меня есть ошибка в коде, пишите.
Задача: цикл while
Ежемесячная стипендия студента составляет educational_grant руб., а расходы на проживание превышают стипендию и составляют expenses руб. в месяц. Рост цен ежемесячно увеличивает расходы на 3%, кроме первого месяца
Составьте программу расчета суммы денег, которую необходимо единовременно попросить у родителей, чтобы можно было прожить учебный год (10 месяцев), используя только эти деньги и стипендию.
Формат вывода: Студенту надо попросить ХХХ.ХХ рублей `
educational_grant, expenses = 10000, 12000
mesyac = 0
procent = 0.03
prosit = 0
while mesyac != 9:
expenses += expenses * procent
mesyac += 1
prosit = prosit + expenses
print(mesyac, '%.2f' % expenses, '%.2f' % prosit,)
print('Студенту надо попросить', '%.2f' % prosit, 'рублей')
Ответы (2 шт):
В своем решении вы не учли стипендию и рост цен у вас начинается с первого месяца, а не со второго.
In [229]: total_exp, month = 0, 0
...: while month < 10:
...: total_exp += expenses * 1.03**month
...: print(f"month: {month+1}, expenses: {total_exp}")
...: month += 1
...: res = total_exp - 10*educational_grant
...: print(res)
month: 1, expenses: 12000.0
month: 2, expenses: 24360.0
month: 3, expenses: 37090.8
month: 4, expenses: 50203.524000000005
month: 5, expenses: 63709.629720000004
month: 6, expenses: 77620.9186116
month: 7, expenses: 91949.54616994801
month: 8, expenses: 106708.03255504645
month: 9, expenses: 121909.27353169784
month: 10, expenses: 137566.55173764878
37566.551737648784
Следите за условиями. Месяцев 10. Рост цен - кроме первого месяца. И где учитывается стипон?
educational_grant, expenses = 10000, 12000
mesyac = 0
procent = 0.03
prosit = 0
while mesyac < 10:
mesyac += 1
nehvatat= expenses - educational_grant
print(mesyac, '%.2f' % expenses, '%.2f' % nehvatat,)
prosit += nehvatat
expenses += expenses * procent
print('Студенту всего надо попросить', '%.2f' % prosit, 'рублей')
1 12000.00 2000.00
2 12360.00 2360.00
3 12730.80 2730.80
4 13112.72 3112.72
5 13506.11 3506.11
6 13911.29 3911.29
7 14328.63 4328.63
8 14758.49 4758.49
9 15201.24 5201.24
10 15657.28 5657.28
Студенту всего надо попросить 37566.55 рублей
