Расчёт факториала - C# (190689)
Формулировка задачи:
Здравствуйте.
Я написал очень простенькую программку, которая рассчитывает факториал:
Факториал числа 20 считается корректно, а вот всё что больше - нет. Программа выдаёт какую-то чушь, зачастую со знаком минуса в начале. Почему такое происходит и что делать, если мне нужно получить факториал очень больших чисел, на пример 12654?
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(); }
Решение задачи: «Расчёт факториала»
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); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д