Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/358: Рейтинг темы: голосов - 358, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 4

Через сколько лет вклад составит не менее y рублей

07.12.2016, 01:17. Показов 72649. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Вынужден просить помощи у уважаемого сообщества ещё раз.
На этот раз задача следующая:

"Вклад в банке составляет x рублей. Ежегодно он увеличивается на p процентов, после чего дробная часть копеек отбрасывается. Определите, через сколько лет вклад составит не менее y рублей.
Выражение «дробная часть копеек отбрасывается» означает, что если у вас оказалось 123.4567 рублей, т. е. 123 рубля и 45.67 копеек, то после округления у вас получится 123 рубля и 45 копеек, т.е. 123.45 рублей.
Программа получает на вход три натуральных числа: x, p, y и должна вывести одно целое число."

Казалось бы ничего сложного, подумал я, и написал следующую программу:
Python
1
2
3
4
5
6
7
8
9
10
x = int(input())
p = int(input())
y = int(input())
a = p / 100
day = 1
while x + x * a <= y:
    x = x + (x * a)
    x = round(x, 2)
    day += 1
print(day)
Однако, при проверке моего решения, она оказалась неверной.
Не работала для следующих значений переменных:
Code
1
2
3
x = 1
p = 1
y = 2
На выходе должно получиться число 100, а у меня получается 76.

Народ, сутки убил на поиск ответа "почему так", но так ни к чему и не пришёл.
Буду безмерно благодарен, если сможете объяснить где ошибся.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.12.2016, 01:17
Ответы с готовыми решениями:

Начальный вклад в банк составляет а рублей. Каждый год вклад увеличивается на 3%. Через сколько лет он станет больше b
Что не так? В питоне ещё чайник now = float(input('Введите начальный взнос: ')) last = float(input('Введите конечный капитал: '))...

Через сколько лет вклад в банке составит не менее "y" рублей?
Вклад в банке составляет x рублей. Ежегодно он увеличивается на p процентов, после чего дробная часть копеек отбрасывается. Каждый год...

Найти через сколько лет банковский вклад составит желаемую сумму
&quot;Вклад в банке составляет x рублей. Ежегодно он увеличивается на p процентов, после чего дробная часть копеек отбрасывается. Определите,...

8
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
07.12.2016, 01:41
причина в том, что вы набавляете процент каждый год к новой сумме, а хотите, чтобы к изначальной
и еще в задании идет речь про годы, а вы считаете дни

Python
1
2
3
4
5
6
7
8
9
10
11
12
x = int(input())
p = int(input())
y = int(input())
 
yearly = x * (p/100)
years = 0
 
while x < y:
    x = round(x+yearly, 2)
    years += 1
 
print(years)
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 4
07.12.2016, 01:58  [ТС]
Спасибо!
Да, назвал я переменную коряво, согласен)
НО!
В самой задаче были даны следующие трио чисел:
1) x = 100
p = 10
y = 200 Ответ: 8 Ваша программа выдаёт ответ 10

2) x = 100
p = 100
y = 200 Ответ: 1 Ваша программа выдаёт ответ 1

3) x = 1
p = 1
y = 2 Ответ: 100 Ваша программа выдаёт ответ 100


4) x = 100
p = 1
y = 200 Ответ: 70 Ваша программа выдаёт ответ 100

5) x = 400
p = 32
y = 743 Ответ: 3 Ваша программа выдаёт ответ 3

6) x = 400
p = 7
y = 1064 Ответ: 15 Ваша программа выдаёт ответ 24

У меня моя программа считала корректно всё, кроме номера "3)"
Может сможете помочь дальше?
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
07.12.2016, 02:17
1) расчет с капитализацией
2) расчет может быть любой
3) расчет без капитализации
4) расчет с капитализацией
5) расчет может быть любой
6) расчет с капитализацией

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

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# без капитализации
def bank_perc_no_cap(x, p, y):
    years = 0
    yearly = x * (p / 100)
 
    while x < y:
        x = round(x + yearly, 2)
        years += 1
 
    print('no capitalization:', years)
 
# с капитализацией
def bank_perc_with_cap(x, p, y):
    years = 0
 
    while x < y:
        x += x * (p / 100)
        years += 1
 
    print('with capitalization:', years)
 
 
x = int(input())
p = int(input())
y = int(input())
 
bank_perc_no_cap(x, p, y)
bank_perc_with_cap(x, p, y)
0
1 / 1 / 0
Регистрация: 24.02.2019
Сообщений: 8
26.02.2019, 23:31
Пример решения задачи
Python
1
2
3
4
5
6
7
8
x=int(input())
y = int(input())
p = int(input())
i = 0
while x < y:
    x *= 1+p/100
    i += 1
print(i)
0
0 / 0 / 0
Регистрация: 21.04.2019
Сообщений: 1
21.04.2019, 22:07
123

Добавлено через 3 минуты
Python
1
2
3
4
5
6
7
8
9
x=int(input('x:'))
per=int(input('per:'))
y=int(input('y:'))
years=0
while x<y:
    yearly=x*(per/100)
    x=x+yearly
    years+=1
print(years)
0
0 / 0 / 0
Регистрация: 20.03.2022
Сообщений: 4
02.06.2022, 18:03
Python
1
2
3
4
5
6
7
8
x=100*int(input())
p=int(input())
y=100*int(input())
s=0
while x<y:
    x+=int(x/100*p)
    s+=1
print(int(s))

работает в сириусе
0
0 / 0 / 0
Регистрация: 20.03.2023
Сообщений: 3
08.04.2023, 18:04
Ошибка в том, что функция round не достаточно корректно округляет (об этом можно почитать в инетернете(она переводит все в двоичную и ...))
Поэтому можно воспользоваться встроенной функцией int, но так как нам нужно отбрасывать дробную часть копеек (то есть отбрасывать все что находиться после 2ух знаков после запятой) мы должны предварительно умножить число на 100, а после округления - разделить на 100.
В таком случае программа проходит все проверки (включая 3-тью)
Python
1
2
3
4
5
6
7
8
9
10
11
x = int(input())
p = int(input())
y = int(input())
a = p / 100
day = 1
while x + x * a <= y:
    x = x + (x * a)
    x = int((x * 100))
    x = x / 100
    day += 1
print(day)
0
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
08.04.2023, 18:48
Цитата Сообщение от very_bad_june Посмотреть сообщение
мы должны предварительно умножить число на 100, а после округления - разделить на 100
интересная теория, сами догадались?

Цитата Сообщение от very_bad_june Посмотреть сообщение
а после округления
функция int ничего не округляет, а возвращает целое число!

Цитата Сообщение от very_bad_june Посмотреть сообщение
x = int((x * 100))
    x = x / 100
это танцы с бубнами какие-то

просто
Python
1
x=int(x)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.04.2023, 18:48
Помогаю со студенческими работами здесь

Начальный вклад в банк составляет a рублей. Через сколько лет он станет больше b рублей? (Repeat-until)
Найти алгоритм решения задачи и реализовать ею в виде Паскаль-програмы с помощью оператора (Repeat-until). Начальный вклад в банк...

Первоначальный вклад составил S рублей. Через сколько лет сумма вклада более чем в 2 раза превысит первоначальный вклад,
Первоначальный вклад составил S рублей. Через сколько лет сумма вклада более чем в 2 раза превысит первоначальный вклад, если годовой...

Через сколько лет вклад станет больше В рублей
1. Ежегодный прирост рыбы в пруду составляет 15%. Запасы рыбы оценены в А тонн. Ежегодный план отлова В тонн. Наименьший запас рыбы, ниже...

Через сколько месяцев сумма вклада составит не менее B рублей
В банке открыт вклад, начальная сумма которого — A рублей. Каждый месяц сумма вклада увеличивается на P процентов (дробная часть рублей...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru