Рекурсия по строкам: почему 0, 1 и сумма
Рекурсия по строкам: почему 0, 1 и сумма
Из 2 нужно получить 5 командами +1 или +2. Сколько разных программ существует? Разберём рекурсивный код по строкам.
Функция Ksy(x, y) принимает 2 значения: x - текущее число, y - цель. Она возвращает количество способов дойти от x до y.
1. Если x > y, цель пройдена. Например, x = 6, а y = 5. Вернуться назад командами +1 и +2 нельзя, поэтому возвращаем 0.
2. Если x == y, цель достигнута. Найден 1 законченный путь, поэтому возвращаем 1.
3. Иначе пробуем 2 команды. Ksy(x + 1, y) считает пути после +1, а Ksy(x + 2, y) - после +2. Складываем результаты этих вызовов.
Считаем снизу вверх:
Ksy(4, 5) = 1 + 0 = 1.
Ksy(3, 5) = 1 + 1 = 2.
Ksy(2, 5) = 2 + 1 = 3.
Ответ: 3 программы.
Для больших значений повторные вызовы замедляют перебор. Позже можно добавить сохранение ответов. А сейчас проверь вручную: сколько программ переводят 3 в 5?
https://academy-s.ru/
#информатика #программирование #огэ #егэ #репетитор
Открыть оригинал в ВКПост и комментарии в сообществе