(n == 0)和(n == 1)之间是否存在因子函数的终止条件?

时间:2017-12-20 05:15:42

标签: recursion factorial

我写了一个阶乘函数,我尝试使用终止条件(n == 0)和(n == 1)运行它并且我没有看到任何差异,所以我想知道是否有任何关于表现的差异。

int factorial(int n){
   //If condition is changed to n==1 there is no difference.
   if (n == 0){
      return 1;
   }
   return n  * factorial(n - 1);
}

1 个答案:

答案 0 :(得分:3)

停在 driver.switch_to.frame(driver.find_element_by_xpath("//iframe[@title='SRC']")) 而不是n==0会为计算添加另一个步骤,但这完全可以忽略不计。

主要区别在于数学严格性。如果您使用n==1终止计算,则根据空产品的惯例,您的实施将无法计算n==1,其定义为0!