本文介绍了递归幂函数:如果没有初始返回值,为什么这会起作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因为幂(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;
}

这篇关于递归幂函数:如果没有初始返回值,为什么这会起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 04:38