Начал учить питон,и нашел задачу связанную с while ,но не получается решить,хотя решение правильное - Общение Python мододелов
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Начал учить питон,и нашел задачу связанную с while ,но не получается решить,хотя решение правильное

Регистрация
13 Июн 2013
Сообщения
83
Репутация
0
Спасибо
0
Монет
0
Задача звучит так:Вклад в банке составляет x рублей. Ежегодно он увеличивается на p процентов, после чего дробная часть копеек отбрасывается. Определите, через сколько лет вклад составит не менее y рублей.

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

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



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

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





В интернете я нашел такое решение:

x = int(input())

p = int(input())

y = int(input())

i = 0

while x < y:

x *= 1 + p / 100

x = int(100 * x) / 100

i += 1

print(i)



А моё решение такое:

x=float(input("Введите ваш вклад: "))

p=float(input("Введите процент вклада: "))

y=float(input("Сколько хотите получить в итоге: "))

p=p/100

celloe=0

while x>y:

x=x*p

celloe+=1

print(celloe)



Проблема:У меня всегда выводит целое как ноль
 
Регистрация
24 Окт 2013
Сообщения
94
Репутация
6
Спасибо
1
Монет
0
x, p, y = int(input()), int(input()), int(input())
x *= 100 # исходный вклад в копейках
y *= 100 # итоговая сумма в копейках
i = 0
while x < y:
i += 1
x += x * p // 100 # увеличение вклада с отбрасыванием дробных частей копеек
print(i) НЕ НАДО использовать в этой задаче вещественные числа. Совсем не надо.

Твоя же ошибка в том, что ты операцию сравнения перепутал: должно быть не x &gt; y, а x &lt; y. В результате у тебя цикл ни разу не выполняется.
 
Регистрация
16 Дек 2012
Сообщения
93
Репутация
0
Спасибо
0
Монет
0
Ошибки:
1. Условие &#34;while x &gt; y&#34; должно быть &#34;while x &lt; y&#34;, так как ты хочешь продолжать увеличивать вклад, пока он не станет не менее &#34;y&#34;.
2. Формула для увеличения вклада должна быть &#34;x = x * (1 + p)&#34;, а не &#34;x = x * p&#34;.
Потому что когда ты используешь формулу x = x * p, ты фактически умножаешь текущую сумму вклада на процентную ставку, что не соответствует задаче. Например, если твой вклад составляет 100 рублей, а процентная ставка 5% (0.05), то x * p даст тебе 5 рублей, что неверно.

Исправлено: x = float(input("Введите ваш вклад: "))
p = float(input("Введите процент вклада: "))
y = float(input("Сколько хотите получить в итоге: "))
p = p / 100
celloe = 0
while x < y:
x = x * (1 + p)
x = int(x * 100) / 100 # Отбрасываем дробную часть копеек
celloe += 1
print(celloe)
 
Регистрация
27 Сен 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
пока икс больше игрика, икс не больше игрика (пропускаем), принт целое (0)
 
Сверху Снизу