├── README.md └── caclucating.cs /README.md: -------------------------------------------------------------------------------- 1 | # Calculating -------------------------------------------------------------------------------- /caclucating.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class FibonacciCalculator 4 | { 5 | // Рекурсивный метод для вычисления числа Фибоначчи 6 | public static long FibonacciRecursive(int n) 7 | { 8 | if (n <= 1) return n; 9 | return FibonacciRecursive(n - 1) + FibonacciRecursive(n - 2); 10 | } 11 | 12 | // Итеративный метод для вычисления числа Фибоначчи 13 | public static long FibonacciIterative(int n) 14 | { 15 | if (n <= 1) return n; 16 | long a = 0, b = 1; 17 | for (int i = 2; i <= n; i++) 18 | { 19 | long temp = a + b; 20 | a = b; 21 | b = temp; 22 | } 23 | return b; 24 | } 25 | 26 | // Метод для вычисления числа Фибоначчи с использованием мемоизации (динамическое программирование) 27 | public static long FibonacciMemoization(int n, long[] memo) 28 | { 29 | if (n <= 1) return n; 30 | if (memo[n] != -1) return memo[n]; 31 | 32 | memo[n] = FibonacciMemoization(n - 1, memo) + FibonacciMemoization(n - 2, memo); 33 | return memo[n]; 34 | } 35 | 36 | static void Main(string[] args) 37 | { 38 | int n = 30; // Число, до которого считаем Фибоначчи 39 | 40 | // Рекурсивный метод 41 | Console.WriteLine("Рекурсивное вычисление: "); 42 | Console.WriteLine($"Число Фибоначчи для {n}-го элемента: {FibonacciRecursive(n)}"); 43 | 44 | // Итеративный метод 45 | Console.WriteLine("\nИтеративное вычисление: "); 46 | Console.WriteLine($"Число Фибоначчи для {n}-го элемента: {FibonacciIterative(n)}"); 47 | 48 | // Мемоизация 49 | long[] memo = new long[n + 1]; 50 | Array.Fill(memo, -1); 51 | Console.WriteLine("\nМемоизация: "); 52 | Console.WriteLine($"Число Фибоначчи для {n}-го элемента: {FibonacciMemoization(n, memo)}"); 53 | } 54 | } 55 | --------------------------------------------------------------------------------