Форум сайта python.su
Собственно решал задачку на циклы.
Условие
Вклад в банке составляет x рублей. Ежегодно он увеличивается на p процентов, после чего дробная часть копеек отбрасывается. Определите, через сколько лет вклад составит не менее y рублей.
Выражение «дробная часть копеек отбрасывается» означает, что если у вас оказалось 123.4567 рублей, т. е. 123 рубля и 45.67 копеек, то после округления у вас получится 123 рубля и 45 копеек, т.е. 123.45 рублей.
Программа получает на вход три натуральных числа: x, p, y и должна вывести одно целое число.
Проверка на сайте показало что верно но кроме значений 1,1,2 . Вместо 100 лет вышло 75 .
x=int(input())
p=int(input())
y=int(input())
year=0
while x<y:
year+=1
x+=round((x/100)*p,2)
print(year)
Офлайн
>>> 123.4567 123.4567 >>> int(123.4567 * 100) / 100 123.45 >>>
Офлайн
SousТак ведь и должно выйти 75, разве нет?
Проверка на сайте показало что верно но кроме значений 1,1,2 . Вместо 100 лет вышло 75 .
Офлайн
На сайте ответ должен быть 100. У меня выходит 75,а все остальное верное. Получается это у них что то не так с ответом. Из 6 вариантов только один непроходит. Код изменил но результат тот же 75
x=int(input())
p=int(input())
y=int(input())
year=0
while x<y:
year+=1
x + = ( x/100 )*p
x = ( x*100 )/100
print(year)
Офлайн
Sous, Вот так получается 100:
x=int(input())
p=int(input())
y=int(input())
year=0
while x<y:
year+=1
x+= ((x/100)*p)
x= (x*100)//1/100
print(year)
При твоем варианте не могу понять почему, но округление до сотых не происходит…
Отредактировано Chaynik01 (Янв. 29, 2016 10:01:22)
Офлайн