阶乘递归解的基本案例

时间:2019-01-25 04:17:15

标签: factorial

我研究了许多递归解决方案,但我不明白为什么有时基本情况是“ if(num === 0)返回1;”有时为“ if(num === 1)返回1;”哪一个?

1 个答案:

答案 0 :(得分:0)

您应该使用类似

的内容
int factstart(int num){
if(num<0) return -1;
else return num * fact(num-1);
}
int fact(int num){
if(num == 0) return 1;
else return num*fact(num-1);
}

人们使用人们使用1或0的原因是,大多数情况下它将得到答案,但这并不是防御性的编程,并且如果给定任何一个负数,那么答案将是随机值,如果它们等于1的情况下给出0,那么即使0阶乘为1,也将给出0

相关问题