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

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

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

Язык: Python​

Показать ответ
Ответ:
iarik2008
iarik2008
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 оценок)
Ответ:
arsenkina2004
arsenkina2004
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-бота