** 两个原则
*** 基准情形:总要有某些基准情形,它们不用递归就能求解
*** 不断推进:对于那些递归求解的情形,递归调用必须总能朝着产生基准情形接近
** 例子:用递归发打印数字”7234“
*** 思路:每一位数都通过取余取模获得,打印顺序为“7->2->3->4”,故打印4之前得先打印3,以此类推;
*** 实现:
相同的场景还可以是:使用英文字典查单词word释义,结果翻译中“it means sentence”,“sentence”又是我不懂,接着我又查,以此类推。。。。
*** 基准情形:总要有某些基准情形,它们不用递归就能求解
*** 不断推进:对于那些递归求解的情形,递归调用必须总能朝着产生基准情形接近
** 例子:用递归发打印数字”7234“
*** 思路:每一位数都通过取余取模获得,打印顺序为“7->2->3->4”,故打印4之前得先打印3,以此类推;
*** 实现:
#include <stdio.h>
void test(int x)
{
int div,mod;
div = x / 10;
mod = x % 10;
if (div != 0)
test(div);
printf("%d",mod);
}
int main(void)
{
test(7234);
return 0;
}
相同的场景还可以是:使用英文字典查单词word释义,结果翻译中“it means sentence”,“sentence”又是我不懂,接着我又查,以此类推。。。。