Я пишу программу для каталонского номера. Итак, вот формула для этого:
Я решил использовать среднюю часть формулы, потому что остальные части слишком абстрактны для моих знаний (может быть, я слишком много спал на уроках математики). На самом деле моя программа отлично работает для n = 0;
,n = 5;
, n = 10;
Но если я ввожу n = 15;
- вот бум - выводится 2
, когда должно быть 9694845
. Итак, мой ребенок:
using System;
namespace _8_Numbers_of_Catalan
{
class CatalanNumbers
{
static void Main()
{
Console.Write("n: ");
int n = int.Parse(Console.ReadLine());
Console.WriteLine("Catalan({0})", n);
//calculating the Catan number from the formula
// Catan(n) = [(2*n)!]/[(n+1)! * n!]
Console.WriteLine((factorial(2 * n)) / (factorial(n + 1) * factorial(n)));
}//finding the factorial
private static ulong factorial(int n)
{
ulong fact = 1;
for (int i = 1; i <= n; i++)
{
fact *= (ulong)i;
}
return fact;
}
}
}
Заранее спасибо за понимание, если что-то явно не так. Я новичок в программировании.