我使用此代碼來計算加泰羅尼亞號碼。它給了我正確的價值,直到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();
}
http://rosettacode.org/wiki/Catalan_numbers#C.23 –
爲factorial等編寫一些輔助方法可能是一個很好的練習。 –
非常感謝大家。 – haby