数据结构学习笔记之--递归

类别:软件工程 点击:0 评论:0 推荐:

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

本文地址:http://com.8s8s.com/it/it32965.htm