public static void Calc() { FC.Input("Введите a", out int a); FC.Input("Введите b", out int b); CalcRec(a, b); Console.WriteLine($"Кол-во вариантов: {counter}, общее количество запусков функции {k}"); CalcNoRec(a, b); FC.Pause(); }
/*2. Реализовать функцию возведения числа a в степень b: * a. Без рекурсии. * b. Рекурсивно. * c. *Рекурсивно, используя свойство чётности степени.*/ public static void Pow() { FC.Input("Введите a", out int a); FC.Input("Введите b", out int b); PowNoRec(a, b); PowRec(1, a, b); PowRecFast(1, a, b); FC.Pause(); }
public static void Convert() { FC.Input("Введите число в десятичной системе счисления", out int num); DecToBin(num); foreach (int n in list) { Console.Write(n); } FC.Pause(); }
public static void Route() { /* За один ход королю разрешается передвинуться на одну клетку вниз или вправо. * Необходимо определить, сколько существует различных маршрутов, * из левого верхнего угла в правый нижний. * Подсчитать количество маршрутов с препятствиями. * Реализовать чтение массива с препятствием и найти количество маршрутов.*/ FC.Input("Введите количество строк", out int n); FC.Input("Введите количество столбцов", out int m); int[,] A = new int[n, m]; int[,] map = new int[n, m]; //Формируем массив с препятствиями Random random = new Random(); int temp; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { temp = random.Next(0, 10); map[i, j] = temp != 0 ? 1 : 0; } } Print(map); Console.WriteLine(); //Заполняем массив количеством маршрутов до каждой клетки if (map[0, 0] != 0) { A[0, 0] = 1; } for (int j = 1; j < m; j++) { if (map[0, j] != 0) { A[0, j] = A[0, j - 1]; } } for (int i = 1; i < n; i++) { if (map[i, 0] != 0) { A[i, 0] = A[i - 1, 0]; } for (int j = 1; j < m; j++) { if (map[i, j] != 0) { A[i, j] = A[i - 1, j] + A[i, j - 1]; } } } Print(A); FC.Pause(); }
static void Main(string[] args) { Graphs graphs = new Graphs("graph.txt"); graphs.PrintMatrix(); FC.Input("Введите номер стартовой вершины", out int num); graphs.Dijkstra(num); FC.Input("Введите номер конечной вершины", out num); graphs.FindShortPath(num); Console.ReadLine(); }
public void Find() { //Выбор метода поиска int type; do { do { Console.Clear(); Console.WriteLine("Выберите тип обхода дерева:"); Console.WriteLine("1 - КЛП (pre-order)"); Console.WriteLine("2 - ЛКП (in-order)"); Console.WriteLine("3 - ЛПК (post-order)"); Console.WriteLine("0 - Выход"); } while (!int.TryParse(Console.ReadLine(), out type)); if (type == 0) { return; } } while (type > 3 || type < 1); Print(); FC.Input("\nВведите искомое число", out int num); //Запус выбранного метода поиска switch (type) { case 1: FindPreOrder(num); break; case 2: FindInOrder(num); break; case 3: FindPreOrder(num); break; default: break; } FC.Pause(); }