В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
NosoK535
NosoK535
21.04.2020 11:09 •  Информатика

Предприниматель вложил деньги в банк под 5 % годовых и хочет узнать, через сколько лет он накопит определённую сумму. Напишите программу, которая запрашивает на ввод сумму начального вклада, сумму конечного вклада и выводит на экран одно число — сколько лет пройдёт до накопления.

Накопление вклада.
Смысл заработка на вкладе денег заключается в том, что банк платит вкладчику определённый денежный процент за право пользоваться его деньгами.
Доход от вклада рассчитывается таким образом: сумма вклада + сумма вклада * процент / 100. Таким образом, вклад ежегодно увеличивается на величину процента от имеющейся на данный момент суммы денег.

Язык: Python​

Показать ответ
Ответ:
dgbimv
dgbimv
21.07.2021 18:48

balance = float(input("Сумма вклада: "))

target = float(input("Цель: "))

years = 0

while balance < target:

   balance = balance + balance * 5 / 100

   years = years + 1

print(years)

0,0(0 оценок)
Ответ:
dianavolk00
dianavolk00
21.07.2021 18:48

Алгоритм:

Составим математическую модель. Заметим, что каждый раз текущая сумма умножается на некоторое число k=1+\dfrac{r}{100}, где r — процент. То есть начальная сумма вклада S и конечная сумма вклада F связаны следующим отношением: S\cdot k^x=F, где x — срок вклада. Его можно выразить следующим образом:

k^x=\dfrac{F}{S}\\x=\log_{k}{\dfrac{F}{S}}

Если результат получается не целым, нужно округлять вверх, иначе сумма будет недоставать от необходимой.

Защиту от дурака, например, проверка на 0, отрицательные значения, делать не будем, считаем, что все данные введены корректно.

Программа:

from math import log, ceil

start_s = float(input())

finish_s = float(input())

k = 1.05 #percent

print(ceil(log(finish_s / start_s, k)))

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота