Расчёт факториала - C# (190689)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Я написал очень простенькую программку, которая рассчитывает факториал:
static void Main(string[] args)
        {
            Console.WriteLine("Введите число");
            long n = Convert.ToInt64(Console.ReadLine());
            long r = 1;
            for (int i = 2; i <= n; ++i)
                r *= i;
            Console.WriteLine(r);
            Console.ReadLine();
        }
Факториал числа 20 считается корректно, а вот всё что больше - нет. Программа выдаёт какую-то чушь, зачастую со знаком минуса в начале. Почему такое происходит и что делать, если мне нужно получить факториал очень больших чисел, на пример 12654?

Решение задачи: «Расчёт факториала»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
using System.Numerics;
 
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите число");
            long n = Convert.ToInt64(Console.ReadLine());
            Console.WriteLine(fact(n));
            Console.ReadLine();
        }
        static BigInteger fact(BigInteger num)
        {
            return (num == 0) ? 1 : num * fact(num - 1);            
        }
        
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы