Cколько различных способов есть у зайца добраться до вершины лестницы - C#
Формулировка задачи:
1. В нашем зоопарке появился заяц. Его поместили в клетку, и чтобы ему не было скучно, директор зоопарка распорядился поставить в его клетке лесенку. Теперь наш зайчик может прыгать по лесенке вверх, перепрыгивая через ступеньки. Лестница имеет определенное количество ступенек N. Заяц может одним прыжком преодолеть не более К ступенек. Для разнообразия зайчик пытается каждый раз найти новый путь к вершине лестницы. Директору любопытно, сколько различных способов есть у зайца добраться до вершины лестницы при заданных значениях K и N. Помогите директору написать программу, которая поможет вычислить это количество. Например, если K=3 и N=4, то существуют следующие маршруты: 1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2, 1+3, 3+1. Т.е. при данных значениях у зайца всего 7 различных маршрутов добраться до вершины лестницы.
Скиньте код с комментариями, пожалуйста)))
Решение задачи: «Cколько различных способов есть у зайца добраться до вершины лестницы»
textual
Листинг программы
using System; class Program { public static int Rabbit(int n, int k) { if (n < 0) return 0; // мы получили отрицательное число, значит в лестнице было меньше ступеней, чем была длина прыжка, этот способ добраться до вершины лестницы не работает if (n == 0) return 1; // мы не вершине лестницы, предыдущий прыжок привел нас к цели int s = 0; // считаем количество способов для текущей лестницы for (int i = 1; i <= k; i++) // пробуем все варианты прыжков { s += Rabbit(n - i, k); // совершив прыжок на i ступеней, мы получим ту же задачу, но с лестницей, в которой n - i ступеней } return s; } public static void Main() { Console.WriteLine(Rabbit(4, 3)); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д