Untitled
unknown
plain_text
2 years ago
2.2 kB
5
Indexable
namespace educationTerm2; public class lab_1_vers2 { static long Factorial(int n) { if (n == 0 || n == 1) return 1; long result = 1; for (int i = 2; i <= n; i++) { result *= i; } return result; } public static long Calcfactorial(int n, int m) { if (n < m) throw new ArgumentException("N должно быть больше или равно M."); long value1 = Factorial(n); long value2 = Factorial(m) * Factorial(n - m); return value1 / value2; } public static void Main(string[] args) { int n, m; bool validN; bool validM; do { Console.WriteLine("Введите значение для сочетания N:"); string? inputN = Console.ReadLine(); validN = int.TryParse(inputN, out n); if (!validN) Console.WriteLine("Ошибка ввода. Пожалуйста, введите целочисленное значение для N."); } while (!validN); do { Console.WriteLine("Введите значение M:"); string? inputM = Console.ReadLine(); validM = int.TryParse(inputM, out m); if (!validM) Console.WriteLine("Ошибка ввода. Пожалуйста, введите целочисленное значение для M."); } while (!validM); try { if (n < 0 || m < 0) throw new ArgumentException("N и M должны быть неотрицательными числами."); long result = Calcfactorial(n, m); string suffix = (result == 1) ? "сочетание" : "сочетаний"; Console.WriteLine("Количество {0} при N равное {1} по M равное {2} составит {3} {4}", suffix, n, m, result, suffix); } catch (ArgumentException except) { Console.WriteLine("Ошибка: " + except.Message); } } }
Editor is loading...