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

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

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

Язык: Python​

Ответ:
НеУмныйКот
НеУмныйКот
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 оценок)
Ответ:
alekseyanci
alekseyanci
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
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?