Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.75/187: Рейтинг темы: голосов - 187, средняя оценка - 4.75
 Аватар для MihaniX
140 / 50 / 2
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4

Как вычислить день, в который улитка доползёт до вершины шеста?

29.09.2013, 19:45. Показов 40442. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача:
Улитка ползет по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползет до вершины шеста?

Программа получает на вход натуральные числа h, a, b, и должна вывести одно натуральное число. Гарантируется, что a<b.

Ни как не получается решить... Опять можно пользоваться только целочисленными операторами.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.09.2013, 19:45
Ответы с готовыми решениями:

На какой день улитка доползёт до вершины шеста
Имя входного файла стандартный ввод Имя выходного файла стандартный вывод Ограничение по времени 2 секунды Ограничение по...

На какой день улитка доползёт до вершины шеста?
Улитка ползёт по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день...

На какой день улитка доползёт до вершины шеста?
Здравствуйте, есть одна задачка несложная вроде, и решение к ней тоже есть, задача на тему Div, Mod... вообщем мне очень нужно понять...

36
 Аватар для MihaniX
140 / 50 / 2
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
05.10.2013, 17:50  [ТС]
Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
h=int(input())
a=int(input())
b=int(input())
print((h-b-1)//(a-b)+1)
Работает!
1
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
05.10.2013, 20:58
Python
1
2
def snaildays(h, a, b):
    return (h - b - 1) // (a - b) + 1
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[guest@localhost snail]$ ./test_snail.py 
F
======================================================================
FAIL: test_snaildays_hab_d (__main__.SnailGoodInput)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./test_snail.py", line 20, in test_snaildays_hab_d
    msg='{}({}, {}, {}) != {}'.format(snaildays.__name__, h, a, b, d))
AssertionError: -1 != 1 : snaildays(1, 3, 2) != 1
 
----------------------------------------------------------------------
Ran 1 test in 0.000s
 
FAILED (failures=1)
[guest@localhost snail]$
0
 Аватар для MihaniX
140 / 50 / 2
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
05.10.2013, 21:22  [ТС]
Мне задачу засчитало!
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
05.10.2013, 21:57
MihaniX, а код будьте добры)
0
 Аватар для MihaniX
140 / 50 / 2
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
05.10.2013, 22:50  [ТС]
Цитата Сообщение от MihaniX Посмотреть сообщение
Python
1
2
3
4
h=int(input())
a=int(input())
b=int(input())
print((h-b-1)//(a-b)+1)
Работает!
Вот, прислал же.
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
05.10.2013, 23:46
так вот же вариант, чем он не подходит им ?
один хрен, неправильные оба
0
 Аватар для MihaniX
140 / 50 / 2
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
06.10.2013, 17:05  [ТС]
Python
1
2
h, a, b=int(input()), int(input()), int(input())
print(1+(h-a) / (a - b))
Частичное решение.

Мой вариант данная система считает правильным. Ссылку кидать не буду. Не хочу преду.

Добавлено через 16 часов 44 минуты
Цитата Сообщение от accept Посмотреть сообщение
один хрен, неправильные оба
Мой как раз таки правильный.
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
06.10.2013, 21:03
Цитата Сообщение от MihaniX Посмотреть сообщение
Мой как раз таки правильный.
да неправильный он, смотри тест (на 1 3 2 возвращает -1)
просто сайт защитал неправильный вариант как правильный
0
 Аватар для snakeand1
7 / 7 / 1
Регистрация: 17.06.2013
Сообщений: 83
06.10.2013, 21:31
Просто добавьте проверку на результат, например, если результат отрицательный, возращать положительный
0
07.10.2013, 08:30

Не по теме:

snakeand1, клёвый костылёк)) Не хотел бы с вами работать в одной команде)

0
 Аватар для snakeand1
7 / 7 / 1
Регистрация: 17.06.2013
Сообщений: 83
07.10.2013, 13:53
Wolkodav, да, я тот еще мастер разрабатывать велосипеды и костыли
Но, по-моему, нет единного способа решить эту задачу при разных переменных.
0
 Аватар для MihaniX
140 / 50 / 2
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
07.10.2013, 14:21  [ТС]
А может возвести результат в квадрат и извлечь корень? Тогда он будет положительным.
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
07.10.2013, 19:38
расширил тест
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env python3
 
import unittest
from snail import snaildays
 
class SnailGoodInput(unittest.TestCase):
    def test_snaildays_hab_d_no_small_h(self):
        habd = ((4, 3, 2, 2),
                (5, 3, 2, 3),
                (10, 3, 2, 8),
                (2, 2, 1, 1),
                (3, 2, 1, 2),
                (4, 2, 1, 3),
                (4, 1, 0, 4),
                (10, 7, 2, 2),
                (10, 9, 3, 2))
        for h, a, b, d in habd:
            self.assertEqual(snaildays(h, a, b), d,
                msg='{}({}, {}, {}) != {}'.format(snaildays.__name__, h, a, b, d))
 
    def test_snaildays_hab_d(self):
        habd = ((1, 3, 2, 1),
                (2, 3, 2, 1),
                (3, 3, 2, 1),
                (4, 3, 2, 2),
                (5, 3, 2, 3),
                (10, 3, 2, 8),
                (1, 2, 1, 1),
                (2, 2, 1, 1),
                (3, 2, 1, 2),
                (4, 2, 1, 3),
                (4, 1, 0, 4),
                (10, 7, 2, 2),
                (10, 9, 3, 2))
        for h, a, b, d in habd:
            self.assertEqual(snaildays(h, a, b), d,
                msg='{}({}, {}, {}) != {}'.format(snaildays.__name__, h, a, b, d))
 
if __name__ == '__main__':
    unittest.main()


Python
1
2
def snaildays(h, a, b):
    return (((h - b - 1) // (a - b) + 1) ** 2) ** 0.5
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[guest@localhost snail]$ ./test_snail.py 
F.
======================================================================
FAIL: test_snaildays_hab_d (__main__.SnailGoodInput)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./test_snail.py", line 37, in test_snaildays_hab_d
    msg='{}({}, {}, {}) != {}'.format(snaildays.__name__, h, a, b, d))
AssertionError: 0.0 != 1 : snaildays(2, 3, 2) != 1
 
----------------------------------------------------------------------
Ran 2 tests in 0.000s
 
FAILED (failures=1)
[guest@localhost snail]$
0
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 1
19.04.2016, 11:51
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
fall = 10
rise = 3
while (fall > rise) or (fall < 0) or length < 0 or rise < 0 or length > 100 or rise > 100 or fall > 100:
    length = int(input())
    rise = int(input())
    fall = int(input())
 
if rise > length or rise == length:
    total = 1
else:
    total = 2
    new_numer = 2*rise - fall
    while new_numer < length:
    
        total+=1
        new_numer+=rise
        new_numer-=fall
 
print(int(total))
Задача была отправлена на проверку сайтом http://informatics.mccme.ru/. Решено на 100 процентов.
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
20.04.2016, 00:06
Через max
Python
1
2
def snaildays(h, a, b):
    return (max(h, a) - a) // (a - b) + 1
Через модуль
Python
1
2
def snaildays(h, a, b):
    return (h - a + abs(h - a)) // (2*(a - b)) + 1
Без никто
Python
1
2
def snaildays(h, a, b):
    return (h - a + (h - a)*(1 - 2*(3*(h - a) // (3*(h - a) + 1)))) // (2*(a - b)) + 1
0
1 / 1 / 1
Регистрация: 11.02.2016
Сообщений: 2
16.04.2017, 18:28
Python
1
2
3
4
5
6
from math import ceil
h=int(input())
a=int(input())
b=int(input())
 
print(ceil((h-b)/(a-b)))
0
0 / 0 / 0
Регистрация: 19.02.2020
Сообщений: 1
19.02.2020, 20:06
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
h = int(input())
a = int(input())
b = int(input())
x=0
d=1
while x <= h:
    x += a
    if x<h:
        x -=b
    elif x>=h:
        break
    d +=1
print(d)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2020, 20:06

На какой день улитка доползёт до вершины шеста?
Всем доброго времени суток, я начинающий программист) точне записался на курсы и много чего не знаю, нужна ваша помощь, подскажите...

Определить, на какой день улитка доползёт до вершины шеста?
Улитка ползёт по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день...

Определить на какой день улитка доползет до вершины шеста
Улитка Улитка ползет по вертикальному шесту высотой H метров, поднимаясь за день на A метров, а за ночь спускаясь на B метров. На...

Циклы: К какому дню улитка доползет до вершины столба
Еще раз здравствуйте. Условие задачи:есть некая улитка,которой очень хочется взобраться на столб высотой L см. 1&lt;L&lt;100 Каждый...

Улитка, улитка и еще раз улитка! Какой у тебя класс?
В домике, где живет Девочка с Голубыми волосами, есть самая медленная слуга на свете — Улитка. Чтобы только спуститься с четвёртого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru