F#中的递归函数

时间:2015-10-12 18:37:17

标签: recursion f#

我不确定这是否是提出这类问题的正确场所,所以请不要讨厌。 我最近开始在edx.org上学习F#。我们有一个关于递归的课程。该课程的作者给出了一个有趣的例子:

avg

然后他将a设置为4,结果输出为48.我一直在考虑这个问题已有一段时间了,我不明白。因为4不等于0,所以我们得到T(4 - 1)* 4,即12.因为a每回合一次减少,哪个位置得到结果12?是T(3 - 1)* 12还是其他什么?我们如何得到结果48?

1 个答案:

答案 0 :(得分:5)

T(4)= T(3)* 4 =(T(2)*3)* 4 =((T(1)*2)* 3)* 4 =(({T(0)*1)* 2) * 3)* 4)= 2 * 1 * 2 * 3 * 4 = 48