我试图使用递归来计算阶乘,就像这样:
#include <iostream>
using namespace std;
int factorial(int a)
{
if(a == 0)
{
return 1;
}
return a*factorial(--a);
}
int main()
{
int a;
cin >> a;
cout << factorial(a) << endl;
return 0;
}
之前它不能正常工作,然后我做了一个小改动:
#include <iostream>
using namespace std;
int factorial(int a)
{
if(a == 0)
{
return 1;
}
return a*factorial(a-1);
}
int main()
{
int a;
cin >> a;
cout << factorial(a) << endl;
return 0;
}
...然后它开始工作了!
问题在于我看不出这些代码之间有任何区别:为什么第一个代码没有起作用?
--a
与a-1
。 - Adrian Mole