Задача «Улитка».
Условие:
Улитка ползёт по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползёт до вершины шеста?
С выводом формулы.
Программа получает на вход натуральные числа h, a, b.
Программа должна вывести одно натуральное число. Гарантируется, что a > b.
Ответы на вопрос
Решение задачи «Улитка».
Пусть улитка за один полный день (день + ночь) поднимается на:
метров.
Но важно учитывать, что в последний день улитка уже не спускается, если она достигла вершины. Поэтому сначала нужно найти количество полных дней, после которых улитка еще не достигла вершины.
После полных суток высота улитки будет:
Но на следующий день она поднимется еще на метров и достигнет вершины:
Нужно найти минимальное такое .
Перенесем в правую часть:
Отсюда:
Так как количество дней должно быть целым, берем округление вверх:
Это количество ночей, которые улитка переживет до последнего подъема. Сам день достижения вершины будет:
В программе удобнее использовать целочисленное округление вверх:
если и — натуральные числа.
Алгоритм:
-
Считываем .
-
Если улитка за первый день достигает вершины (), ответ будет 1.
-
Иначе считаем количество полных суток:
-
Прибавляем 1 — это день подъема на вершину.
Пример:
h = 10 a = 3 b = 1
За сутки улитка поднимается:
метра.
После 3 суток она будет на высоте:
На 4-й день поднимется еще на 3 метра:
не хватило. После 4 суток высота будет 8 метров, а на 5-й день:
Она достигнет вершины.
Ответ:
5
Код на C++:
C++#includeusing namespace std;int main() { int h, a, b; cin >> h >> a >> b; if (a >= h) { cout << 1; } else { cout << (h - a + (a - b) - 1) / (a - b) + 1; }
return 0; }
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

