这种递归函数的意义

时间:2014-12-24 04:40:06

标签: javascript math recursion

想知道以下功能的重要性

var abc=(function(a, b){
    return a == 0 ? 0 : abc(a -1, b) + b;
});
(function(){
    var a = abc(10, 10);
    console.log(a);
})();

我知道以下函数的输出是100,但它在数学中的用途是什么?

2 个答案:

答案 0 :(得分:1)

乘法:通过添加var b,一次。

var abc=(function(a, b){
    return a == 0 ? 0 : abc(a -1, b) + b;// here every time a is decreaded by 1 and abc() is called i.e. adding b, a time.
});
(function(){
    var a = abc(10, 10);
    console.log(a);
})();

答案 1 :(得分:1)

以下是它如何工作的直观表示,<​​/ p>

abc(9, 10) + 10
abc(8, 10) + 10 + 10
abc(7, 10) + 10 + 10
abc(6, 10) + 10 + 10 + 10
abc(5, 10) + 10 + 10 + 10 + 10
abc(4, 10) + 10 + 10 + 10 + 10 + 10
abc(3, 10) + 10 + 10 + 10 + 10 + 10 + 10
abc(2, 10) + 10 + 10 + 10 + 10 + 10 + 10 + 10
abc(1, 10) + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10
abc(0, 10) + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10
0 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10 + 10

它基本上执行两个数字的乘法运算。