我正在使用名为BinomialCoefficients的程序。
我做了一个框跟踪C(5,3)
,它返回10
是正确的,但我注意到在我的完整递归树中C(5, 3)
,该值C(3, 2)
被评估了 2 次,并被C(2, 1)
评估了 3 次。
什么可能是修改,以避免多次计算相同的值?
这只是显示上下文的功能。
public static int C(int n, int k) {
if(k>n)
return 0;
else if(k==0 || k==n)
return 1;
else
return C(n-1, k-1)+C(n-1, k);
}