在研究递归时,我试图让一个 C++ 示例函数在 javascript 中工作。
原始函数(来自斯坦福 CS106B)在这里:
int Raise (int base, int exp)
{
if (exp == 0)
return 1;
else
{
int half = Raise(base, exp/2);
if (exp % 2 === 0)
return half * half;
else
return base * half * half;
}
}
Raise(3,5);
我下面的版本重复了太多次。我搞砸了什么基本的事情?我敢打赌这是 var half 的行...我从未尝试将函数分配给变量,所以这也是新领域...
function Raise (base, expo)
{
if (expo === 0)
return 1;
else
{
var half = Raise(base, (expo/2));
if (expo % 2 === 0)
return half * half;
else
return base * half * half;
}
}
Raise(3,5);