首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

递归函数解决办法

2012-03-31 
递归函数谁能解释一下递归函数的原理和用法。看书看的挺模糊的。[解决办法]简单的说就是函数调用自己本身,在

递归函数
谁能解释一下递归函数的原理和用法。看书看的挺模糊的。

[解决办法]
简单的说就是函数调用自己本身,在求的解之前一直压栈,就像往弹夹里压子弹一样。
递归函数必须存在终止条件,不能无限递归下去。
[解决办法]
就是函数内部调用自己。
但会有个停止调用自己的条件。
比如

计算1加到n的值可以写

C/C++ code
int fn(int n){if(n == 0)  //跳出递归的条件    return 0;return n + fn(n - 1); }
[解决办法]
我感觉这个例子蛮好的(打印十进制数 来自TCPL)
void printd (int n)
{
if (n < 0){
putchar('-');
n = -n;
}
if (n / 10)
printd (n / 10);
putchar (n % 10 + '0');
}
刚开始是打印负号,由于没有运行到printd就直接打印出来了
第二个是打印个位,可是printd在它前面打印 n/10的个位也就是原来的十位
这样下去数字就能依次的打下来而不会是倒过来的。
理解了这个你再去看书可能感觉就没那么的头疼了。

热点排行