На этом шаге мы рассмотрим, когда может оказаться более удобным этот подход.
Другой подход заключается в использовании некоторых альтернативных общих обозначений, которые упрощают создание схем. Пусть 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.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.
И наконец, на практике для более сложных задач может потребоваться анализ многих примеров и сценариев (например, разделять чётные или нечётные входные параметры), приводящих к различным рекурсивным условиям.
На следующем шаге мы рассмотрим процедуры.