パスカルの三角形の値を計算する再帰関数を作成しました。
それを最適化する方法はありますか?
パスカルの三角形についての短いリマインダー: C(n, k) = C(n-1, k-1) + C(n-1, k) 私のコードは:
int Pascal(int n, int k) {
if (k == 0) return 1;
if (n == 0) return 0;
return Pascal(n - 1, k - 1) + Pascal(n - 1, k);
}
私が見る非効率性は、いくつかの値を 2 回保存することです。例: C(6,2) = C(5,1) + C(5,2) C(6,2) = C(4,0) + C(4,1) + C(4,1) + C(4,2) C(4,1) を 2 回呼び出します
この関数を最適化する方法はありますか?
ありがとう