Начнём мы, на первый взгляд, с отвлеченной темы. Как на счёт того, чтобы написать на C# программу, которая выдает нам число N в последовательности Фибоначчи?
Эта последовательность обычно определяется так, что первые два числа либо 1 и 1, либо 0 и 1. А все последующие – это сумма двух предыдущих чисел.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, …
Алгоритм нахождения мы запакуем в такую функцию:
Фрагмент 2.48
static int Fibonacci(int n)
{
...
}
Мы ей передаем N, а он нам число из последовательности под этим номером. Пример:
- 0 = 0;
- 1 = 1;
- 2 = 1;
- 3 = 2;
- 4 = 3;
- 5 = 5;
- 6 = 8;
Эту последовательность мы можем определить через рекуррентное отношение.
Выглядит оно вот так: