Вопрос по решению задачи про улитку на python
Нужно решить задачку на пайтон. Решить нужно используя только арифметику. Улитка ползет по вертикальному шесту высотой H метров, поднимаясь за день на A метров, а за ночь спускаясь на B метров. На какой день улитка доползет до вершины шеста? Программа получает на вход целые H, A, B. Гарантируется, что A > B ≥ 0. Программа должна вывести одно натуральное число. Придумал такое решение, но почему то не пропускает
H = int(input())
A = int(input())
B = int(input())
print(1 + (H - A) // (A - B))
Ответы (4 шт):
Автор решения: GrAnd
→ Ссылка
Вот одно из решений.
H = int(input("Высота столба : "))
A = int(input("Пробег вверх за день : "))
B = int(input("Пробег вниз за ночь : "))
h_remain = H - A # остаток высоты столба после подъёма за день
d_day = A - B # расстояние, на которое поднимется улитка за сутки
# классическая формула
days = (h_remain - 1) // d_day + 1 + 1 # второе +1 здесь эмулирует округление вверх
# или более сложная
# days = 1 + (h_remain // d_day) + (h_remain % d_day + d_day - 1) // d_day
print(days)
Автор решения: Аноним
→ Ссылка
Попробуйте это решение:
import math
h = int(input())
a = int(input())
b = int(input())
print(math.ceil((h - a) / (a - b)) + 1)
Автор решения: AfiR1on
→ Ссылка
h = int(input())
a = int(input())
b = int(input())
print((h - a) // (a - b) + 1 + 0**0**((h - a) % (a - b))) #при наличии остатка, просто добавляем ещё один день
Автор решения: kroddd
→ Ссылка
import math
h = int(input())
a = int(input())
b = int(input())
print(math.ceil((h-b)/(a-b)))