Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №1282017
А
Аноним
29 июля 2024 14:27 · публичный вопрос
А
Аноним

Запишите подряд без пробелов и разделителей все числа, которые будут напечатаны на экране при выполнении вызова F(7). Числа должны быть записаны в том же порядке, в котором они выводятся на экран. def F(n): if n 0: print(n) F(n // 3) F(n 2)

Нейросеть29 июля 2024 14:27

Привет! Давай разберем задание вместе.

Запустим функцию F(7) и посмотрим, что происходит шаг за шагом:

  1. Вызов F(7): идет проверка, n > 0, поэтому печатаем 7. Далее вызовут F(7 // 3), что равно F(2), и F(7 - 2), что равно F(5).

    Вывод: 7

  2. Вызов F(2): n > 0, печатаем 2. Далее вызовут F(2 // 3) - это F(0) (ничего не напечатаем) и F(2 - 2) - это F(0) (тоже ничего не напечатаем).

    Вывод: 2

  3. Затем вернемся к F(5): печатаем 5, вызываем F(5 // 3), что равно F(1), и F(5 - 2), что равно F(3).

    Вывод: 5

  4. Вызов F(1): печатаем 1, далее вызываем F(1 // 3), что равно F(0) (ничего не напечатаем), и F(1 - 2), это F(-1) (тоже ничего не напечатаем).

    Вывод: 1

  5. Теперь вернемся к F(3): печатаем 3, вызываем F(3 // 3), что равно F(1) и F(3 - 2), это F(1).

    Вывод: 3 потом снова 1 (как мы уже разобрали F(1)).

Итак, в итоге на экране у нас появятся числа: 7, 2, 5, 1, 3, 1, 1. Если записать их подряд, получаем: "7251311".

Теперь давай сравним твой ответ с правильным. Ты указал, что «Ученик не дал ответ на задание», что, конечно, не совсем верно, так как ответ имеется. Основная ошибка тут в том, что не было записано само решение, а было отмечено отсутствие.

Если у тебя есть ещё вопросы или что-то неясно — спрашивай! И не забудь оценить мой ответ: понравилось — ставь лайк, если нет — дизлайк.

Запишите подряд без пробелов и разделителей все числа, которые будут напечатаны на экране при выполнении вызова F(7). Числа должны быть записаны в том же порядке, в котором они выводятся на экран. def F(n): if n 0: print(n) F(n // 3) F(n 2)
Привет! Давай разберем задание вместе. Запустим функцию F(7) и посмотрим, что происходит шаг за шагом: 1. Вызов F(7): идет проверка, n > 0, поэтому печатаем 7. Далее вызовут F(7 // 3), что равно F(2), и F(7 - 2), что равно F(5). Вывод: 7 2. Вызов F(2): n > 0, печатаем 2. Далее вызовут F(2 // 3) - это F(0) (ничего не напечатаем) и F(2 - 2) - это F(0) (тоже ничего не напечатаем). Вывод: 2 3. Затем вернемся к F(5): печатаем 5, вызываем F(5 // 3), что равно F(1), и F(5 - 2), что равно F(3). Вывод: 5 4. Вызов F(1): печатаем 1, далее вызываем F(1 // 3), что равно F(0) (ничего не напечатаем), и F(1 - 2), это F(-1) (тоже ничего не напечатаем). Вывод: 1 5. Теперь вернемся к F(3): печатаем 3, вызываем F(3 // 3), что равно F(1) и F(3 - 2), это F(1). Вывод: 3 потом снова 1 (как мы уже разобрали F(1)). Итак, в итоге на экране у нас появятся числа: 7, 2, 5, 1, 3, 1, 1. Если записать их подряд, получаем: "7251311". Теперь давай сравним твой ответ с правильным. Ты указал, что «Ученик не дал ответ на задание», что, конечно, не совсем верно, так как ответ имеется. Основная ошибка тут в том, что не было записано само решение, а было отмечено отсутствие. Если у тебя есть ещё вопросы или что-то неясно — спрашивай! И не забудь оценить мой ответ: понравилось — ставь лайк, если нет — дизлайк.