Написать метод вычисления факториала числа, результат вычислений передавать в выходном параметре. Если метод отработал успешно, то вернуть значение true; если в процессе вычисления возникло переполнение, то вернуть значение false. Для отслеживания переполнения значения использовать блок checked. C#
using System; class Program { static bool CalculateFactorial(int n, out long result) { result = 1; try { checked { for (int i = 1; i <= n; i++) { result *= i; } } return true; } catch (OverflowException) { return false; } } static void Main() { int number = 20; long factorial; if (CalculateFactorial(number, out factorial)) { Console.WriteLine($"Factorial of {number} is: {factorial}"); } else { Console.WriteLine($"Overflow occurred while calculating the factorial of {number}"); } } }
В данном примере метод CalculateFactorial вычисляет факториал числа n и передает результат через выходной параметр result. Если происходит переполнение при вычислении, метод вернет false и выведет сообщение об этом. В методе Main() значение факториала числа 20 вычисляется и выводится на экран.
class Program
{
static bool CalculateFactorial(int n, out long result)
{
result = 1;
try
{
checked
{
for (int i = 1; i <= n; i++)
{
result *= i;
}
}
return true;
}
catch (OverflowException)
{
return false;
}
}
static void Main()
{
int number = 20;
long factorial;
if (CalculateFactorial(number, out factorial))
{
Console.WriteLine($"Factorial of {number} is: {factorial}");
}
else
{
Console.WriteLine($"Overflow occurred while calculating the factorial of {number}");
}
}
}
В данном примере метод CalculateFactorial вычисляет факториал числа n и передает результат через выходной параметр result. Если происходит переполнение при вычислении, метод вернет false и выведет сообщение об этом. В методе Main() значение факториала числа 20 вычисляется и выводится на экран.