Шаг 27.
Рекурсия на Python. Методика рекурсивного мышления. Рекурсивные условия, индукция и схемы. Альтернативные обозначения

    На этом шаге мы рассмотрим, когда может оказаться более удобным этот подход.

    Другой подход заключается в использовании некоторых альтернативных общих обозначений, которые упрощают создание схем. Пусть dm-1...d1d0 - последовательность цифр некоторого неотрицательного целого числа n по основанию 10. Иными словами, n = dm-1 * 10m-1 + ... + d1 * 10 + d0, где 0 ≤ di ≤ 9 для всех i и dm-1 ≠ 0, если m > 1. В этом случае общая схема была бы такой:

а код функции был бы таким, как показано в примере 2.2, где (n % 10) представляет d0.
Пример 2.2. Вычисление суммы цифр неотрицательного целого числа
1
2
3
4
5
def add_digits(n):
    if n < 10:
        return n
    else:
        return add_digits(n // 10) + (n % 10)   
Архив с файлом можно взять здесь.

    Отметим, что начальное условие этой задачи выполняется, когда n состоит из одной цифры (то есть n < 10), а его результат, очевидно, равен n.

    И наконец, на практике для более сложных задач может потребоваться анализ многих примеров и сценариев (например, разделять чётные или нечётные входные параметры), приводящих к различным рекурсивным условиям.

    На следующем шаге мы рассмотрим процедуры.




Предыдущий шаг Содержание Следующий шаг