Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Сириус пайтон цикл while

Роман Моложенов Ученик (94), на голосовании 2 дня назад
Банковские проценты
Вклад в банке составляет x
рублей. Ежегодно он увеличивается на p
процентов, после чего дробная часть от копеек отбрасывается. Определите, через сколько лет вклад составит не менее y
рублей. В задаче запрещено использовать дробные числа.

Входные данные

Программа получает на вход три натуральных числа: x
, p
, y
(x⩽2000,p⩽100,y⩽2000)
.

Выходные данные

Программа должна вывести одно целое число — ответ на задачу.

Примечание

Обратите внимание, что вклад в банке измеряется в рублях, а отбрасывается дробная часть копеек.
Задачу следует решать в копейках, проводя все вычисления в целых числах.
x, p, y = (int, input()),(int, input()),(int, input())

years = 0
while x < y:
x += x * p // 100 # увеличиваем вклад на p процентов без дробной части
years += 1

print(years)
он не работает
Голосование за лучший ответ
_Fire_of_Death_ Гуру (4309) 1 месяц назад
 x, p, y = map(int, input().split()) 

x *= 100 # переводим вклад в копейки
y *= 100 # переводим желаемую сумму вклада в копейки
years = 0

while x < y:
x += x * p // 100 # увеличиваем вклад на p процентов
years += 1

print(years)
Роман МоложеновУченик (94) 1 месяц назад
выдает ошибку

Traceback (most recent call last):
File "main.py", line 2, in <module>
x, p, y = map(int, input().split())
ValueError: not enough values to unpack (expected 3, got 1)


** Process exited - Return Code: 1 **
Press Enter to exit terminal
_Fire_of_Death_Гуру (4309) 1 месяц назад
Эта ошибка возникает, когда программа не получает ожидаемый ввод. Убедитесь, что вы вводите все три значения в одной строке, разделенные пробелом, как требуется в условии задачи. Например:

 100 5 2000 
где первое число (100) это x, второе число (5) это p, а третье число (2000) это y.
Роман МоложеновУченик (94) 1 месяц назад
можно код без map и split?
_Fire_of_Death_Гуру (4309) 1 месяц назад
 x = int(input())  # вводим начальную сумму вклада в рублях 
p = int(input()) # вводим годовую процентную ставку
y = int(input()) # вводим желаемую сумму вклада в рублях

x *= 100 # переводим вклад в копейки
y *= 100 # переводим желаемую сумму вклада в копейки
years = 0

while x < y:
x += x * p // 100 # увеличиваем вклад на p процентов
years += 1

print(years)
GGG Просветленный (26024) 1 месяц назад
 
x = int(input()) * 100
p = int(input())
y = int(input()) * 100

years = 0
while x < y:

x = (x * (100 + p) // 100)
years += 1

print(years)
Ошибка в вашем коде заключается в том, что вы не переводите вводные данные в копейки, а работаете с рублями. Кроме того, вы неправильно получаете вводные данные с помощью функции input().
Похожие вопросы