是否存在遞歸是必要的情況,或者甚至強烈希望在JavaScript或C#中使用while循環(不重要,使用情況似乎相同)。無法在while循環中實現的遞歸示例
有上MSDN階乘例子(I除去不相干的東西):
function factorial(num)
{
var tmp = num;
while (num-- > 2) {
tmp *= num;
}
return tmp;
}
VS
function factorial(num)
{
return (num * factorial(num - 1));
}
總之,是那裏的第二個例子是preferrable到第一任何情況性能明智。它能夠完成第一個例子不能做到的事情嗎?如果是這樣,什麼?
舉例來說,你有一棵樹有多個分支,不只是樹幹和第一個分支。所以你必須在遞歸派上用場的地方越陷越深。 –