#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; } 
|