我正在使用此代码来计算加泰罗尼亚语数。它给了我正确的价值,直到 n=6 ,然后它给了我错误的价值。我使用计算器手动检查。例如:当 n=5 加泰罗尼亚数字是 42 时,这是正确的,但当 n=7 时,它给了我 6,这是完全错误的,因为答案应该是 429。我只是想不出什么是错的。有人能帮助我吗?
static void Main(string[] args)
{
int i, n, fact, fact1, fact2, CatalanN;
Console.WriteLine("Enter a Number (n>=0)");
n = Convert.ToInt32(Console.ReadLine());
fact = n;
for (i = n - 1; i > 0; i--)
{
fact = fact * i;
}
Console.WriteLine("" + fact);
Console.ReadLine();
fact1 = 2*n;
for (i = 2*n - 1; i > 0; i--)
{
fact1 = fact1 * i;
}
Console.WriteLine("" + fact1);
Console.ReadLine();
fact2 = n+1;
for (i = (n+1)-1; i > 0; i--)
{
fact2 = fact2 * i;
}
Console.WriteLine("" + fact2);
Console.ReadLine();
CatalanN = fact1 / (fact2 * fact);
Console.WriteLine("Catalan Number of the given number is : " + CatalanN);
Console.ReadLine();
}