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

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

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

Язык: Python​

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