[問題] 遞迴程式的問題
我練習了幾個遞迴程式
其中有個Catalan number 的練習
Catalan number本身遞迴的定義是
n-1
P(N) = Σ P(k)*P(n-k) n>=3
k=1
P(2)=1 P(1)=1
程式算到P(5)都還是正確的
但P(6)就錯誤了 當然後面就跟著錯
看了很久還是看不出癥結所在
因此上來求救
遞迴部分的程式碼如下
public static int matrix(int n)
{
if (n==1 || n==2)
{
return 1;//這是P(1)和P(2)的情況
}
else
{
for(int k = 1;k<=(n-1);k++)
{
ans = (matrix(k) * matrix(n-k))+ans;//遞迴的部分
}
ans1 = ans;//ans是暫存用 ans1是最後要回傳的答案
ans = 0;
return ans1;
}
}
麻煩各位了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.178.19
推
03/26 16:57, , 1F
03/26 16:57, 1F
推
03/26 23:36, , 2F
03/26 23:36, 2F
→
03/27 00:00, , 3F
03/27 00:00, 3F
推
03/27 00:22, , 4F
03/27 00:22, 4F
→
03/27 00:24, , 5F
03/27 00:24, 5F