我写了一个阶乘函数,我尝试用终止条件(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);
}
停在n==0
而不是n==1
会增加计算的另一个步骤,但这完全可以忽略不计。
主要区别在于数学严格性。如果您使用n==1
终止计算,则根据空产品的惯例,您的实现将无法计算0!
(定义为1
)。