对于下面的代码,有人可以告诉我为什么如果基本情况(n == 0)的返回值为0,函数总是返回"0"?我知道为了纠正这个功能,我只需要将"return 0"替换为"return 1",但是,我试图理解为什么它为下面的基本情况返回0.
谢谢你的帮助
int factorial(int n) {
if (n == 0) {
return 0;
} else {
return n * factorial(n-1);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:希望下面的代码没有逻辑错误......
#include<iostream>
#include<math.h>
using namespace std;
long double factorial (long double n) {
if (n==0) return 1;
if (n<0) return -fabs((n*factorial(n+1)));
return n*(factorial(n-1));
}
int main () {
long double n;
cout << "Enter a number: ";
cin >> n;
cout << "Factorial of " << n << " is " << factorial(n) <<endl; …Run Code Online (Sandbox Code Playgroud)