1、递归简述
递归作为编程里最为重要的编程方法之一,其对于解决某些复杂的问题十分有效,并且相对于迭代,其过程在直观上更容易理解。

2、递归的基本思想
递归并不是简单的自己调用自己,也不是简单的交互调用。递归在于把问题分解成规模更小、具有与原来问题相同解法的问题。这些都是不断的把问题规模变小,新问题与原问题有着相同的解法。但是并不是所有所有可以分解的子问题都能使用递归来求解。一般来说使用递归求解问题需要满足以下的条件:

可以把要解决的问题转化为一个子问题,而这个子问题的解决方法仍与原来的解决方法相同,问题的规模变小。
原问题可以通过子问题解决。
存在一种简单的情况可以退出。

下面根据阶乘这个例子学习递归算法思想;
阶乘 递归算法思想_递归算法

#include<iostream>
using namespace std;
int fun(int n);
int main()
{
	int n;
	cin >> n;
	cout << "阶乘结果为:" << fun(n) << endl;
	return 0;
}
int fun(int n)
{
	if (n == 1)
	{
		return 1;
	}
	else
	{
		return n * fun(n - 1);
	}
	return 0;
}