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;
}
?
原文:https://blog.51cto.com/rjgx/3348227