赞
踩
- 递归是一种数学上分而自治的思想。
- A、将原问题分解为规模较小的问题进行处理
- 分解后的问题与原问题类型完全相同,当规模较小。
- 通过小规模问题的解,能够轻易求得原生问题的解
- B、问题的分解时有限的
- 当边界条件不能满足时,分解问题(继续递归)
- 当边界条件满足时,直接求解(递归结束)
递归模型的一般表示法:
- 递归在程序设计中的应用
- 递归函数:
- 函数体中存在自我调用的函数
- 递归函数必须有递归出口(边界条件)
- 函数的无限递归将导致程序崩溃
- 使用递归函数时不要陷入递归函数的执行细节,应首先建立递归模型和确立边界条件。
- int sum(unsigned int n)
- {
- int ret;
- if(n > 1)
- {
- ret = n + sum(n - 1);
- }
- else if(n == 1)
- {
- ret = 1;
- }
- return ret;
- }
- unsigned int Fibonacci(unsigned int n)
- {
- unsigned int ret ;
- if(2 < n)
- {
- ret = Fibonacci(n -1) + Fibonacci(n -2);
- }
- else if((n == 1) || (n == 2))
- {
- ret = 1;
- }
- return ret;
- }
- int _strlen_(const char* s)
- {
- int ret = 0;
- if(*s != '\0')
- {
- ret = 1 + _strlen_(s+1);
- }
- else
- {
- ret = 0;
- }
- return ret;
- }
代码简化:
- unsigned int _strlen_(const char* s)
- {
- return s?((*s)?(1 + _strlen_(s + 1)):0):0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。