#include <iostream>
using namespace std;
int factorial(int n)
{
if (0 == n)
{
return 1;
}
else
{
return n * factorial(n - 1);
}
}
int main()
{
cout << factorial(3) << endl;
return 0;
}
个人觉得递归至少有2个要点:
1. 逐层分解,如:4! = 4 * 3! = 4 * 3 * 2!)= 4* 3 * 2 * 1! = 4* 3 * 2 * 1! * 0!
2. 返回计算,如 :4* 3 * 2 * 1! * 0!
真正的计算到0才开始,然后逐层返回计算的结果
递归简单应用之多进制输出:
#include <iostream>
using namespace std;
void displayInBase(int n, int base)
{
if (n > 0)
{
displayInBase(n/base, base);
}
cout << n % base;
}
int main()
{
displayInBase(8, 2);
cout << endl;
displayInBase(8, 8);
cout << endl;
displayInBase(18, 16);
cout << endl;
return 0;
}