本文介绍了递归幂函数:如果没有初始返回值,为什么这会起作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
因为幂(base,exponent)没有返回值,除非exponent为0,最初,不应该power(base,exponent -1)返回'undefined',因此最初是不可复制的?因此,我无法遵循此代码的逻辑。为什么/如何运作?
because power(base, exponent) has no return value unless exponent is 0, initially, shouldn't power(base, exponent -1) return 'undefined', and therefore be unmultipliable, initially? So, I am having trouble following the logic of this code. Why/how does it work?
function power(base, exponent) {
if (exponent == 0)
return 1;
else
return base * power(base, exponent - 1);
}
推荐答案
它可能更简洁:
function power(base, exponent) {
return exponent == 0? 1 : base * power(base, --exponent);
}
Howerver a 速度非常快:
Howerver an iterative solution is very much faster:
function powerNR(base, exp) {
var result = 1;
while(exp--) {
result *= base;
}
return result;
}
这篇关于递归幂函数:如果没有初始返回值,为什么这会起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!