Untitled
unknown
plain_text
2 years ago
2.2 kB
6
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...