grofro228
12.11.2020 00:05

ПИТОН Чтобы как-нибудь скоротать время до утра, Нильс набрал на берегу полную пригоршню плоских камешков, залез на корягу, валявшуюся у самой воды, и стал бросать камешки в море. Да не просто бросать, а так, чтобы они мячиком прыгали по лунной дорожке.

— Три… пять… семь… десять,— считал Нильс каждый удар камешка о воду.— Хорошо бы до самой луны добросить!

Ну, до Луны далеко, а вот камни сосчитать можно попробовать.

Напишите программу, которая выведет все числа, соответствующие отскокам камня от воды.

Формат ввода
Вводится число n, не большее 9, потом проверочное слово.

Затем вводятся строки, пока не будет введена строка ЛУНА. Эта строка служит признаком окончания ввода, в рассмотрении не участвует.

Формат вывода
Начало и конец диапазона для вывода чисел определяются так.

Среди введенных строк рассматриваются только те, у которых в числе, выражающем длину строки, нет цифры n. А среди них найти с наибольшей и наименьшей длиной.

Если в строке встретилось проверочное слово, то ввод нужно прекратить и перейти к выводу.

Вывести нужно все числа от длины большей строки до длины меньшей (включительно) с шагом, равным числу.

Пример 1
Ввод Вывод
3
море
Хорошо бы до самой луны добросить!
Тихонько вздохнув, Нильс выбрался из пещеры.
Ветер улёгся.
Небо очистилось от туч, и большая круглая луна стояла над самым входом в пещеру.
До утра было ещё далеко.
Чуть только он обогнул выступ скалы, как перед ним открылось море.
Оно лежало такое спокойное, точно бури никогда и не бывало.
ЛУНА
80 77 74 71 68 65 62 59 56 53 50 47 44 41 38 35 32 29 26
Пример 2
Ввод Вывод
3
гус
И вдруг Нильс вспомнил: монетка!
Ведь у него есть воронья монетка!
Это будет получше самого плоского камня.
Нильс растянулся на земле.
А монетка покатилась по отлогому берегу.
ЛУНА
40 37 34 31 28

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Влада19993737
26.05.2022 14:36
"((7 - 2 - 2)^2 )^2  - 2 = 79"

#Ruby22
def f0(number, log)
    return [number * number, "(" + log + ")^2 "]
end

def f1(number, log)
    return [number - 2, log + " - 2"]
end

end_num = 79
for n in 1..5
    for i in 0..2**n-1
        s = ("000000000000000000000000000000" + i.to_s(2))[-n..-1]
        start_num = 7
        log = start_num.to_s
        for k in 0..s.size-1

            start_num, log = f0(start_num, log) if s[k] == "0"
            start_num, log = f1(start_num, log) if s[k] == "1"
            # break if start_num > end_num
        end
        # p [start_num, log, s, n]
        if start_num == end_num then
            log += " = " + end_num.to_s
            p log
        end
    end
end
0,0(0 оценок)
Ответ:
Нюта241
26.05.2022 14:36

21222

Объяснение:

Как обычно, идём с конца.

58 - не квадрат, поэтому последняя операция могла быть только вычитание 2. Значит, до этого было 60.

60 - не квадрат, поэтому следующая операция могла быть только вычитание 2. Значит, до этого было 62.

62 - не квадрат, поэтому следующая операция могла быть только вычитание 2. Значит, до этого было 64.

64 - квадрат. Учитывая, что нам нужно получить 10, если бы тут тоже было вычитание 2, то и на следующем шаге была бы такая же операция, и к пятому шагу у нас было бы 68, а не 10. Поэтому тут было возведение в квадрат, до этого было 8

8 - не квадрат, поэтому следующая операция могла быть только вычитание 2. Значит, до этого было 10 (ура!).

Теперь в обычном порядке:

10\xrightarrow{-2}8\xrightarrow{x^2}64\xrightarrow{-2}62\xrightarrow{-2}60\xrightarrow{-2}58

Меняем все операции "-2" на 2, а "x^2" на 1 и получаем 21222

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота