Переменный кластер для подсчета факториала в С#

Попытка подсчитать факториал большого числа, например 1000!

static void Main(string[] args)
        {
            UInt64 fact = 1;

            for (UInt64 i = 1000; i > 0; i--)
            {
                fact = fact * i;
            }
            Console.WriteLine(fact); //returns 0, due to overflow UInt64, max fact is 56!

            Console.ReadKey();
        }

Поэтому я спрашиваю, есть ли способ присоединить больше переменных к кластеру, чтобы я мог сделать действительно большую переменную для хранения "большого" числа.


person MartinS    schedule 21.11.2012    source источник
comment
можно использовать BigInteger для еще больших чисел   -  person Tigran    schedule 21.11.2012
comment
stackoverflow.com/ вопросы/930611/   -  person Anand Gautam    schedule 21.11.2012


Ответы (2)


Вы можете использовать файл BigInteger. Этот тип может хранить целые числа произвольного размера, пока не закончится память.

person Mark Byers    schedule 21.11.2012

В .NET 4 BigInteger будет делать то, что вы хотите .

Большие целые числа в C# также могут представлять больший интерес, поскольку это очень похожий вопрос (ну, еще очень похожий ответ).

person Chris    schedule 21.11.2012