问答详情
源自:7-1 Linux C递归函数之递归调用

递归到最后为什么到0就终止了呢?

递归到最后为什么到0就终止了呢,运算到n<0为什么不会输出data error?

提问者:sardipeng 2016-02-26 10:55

个回答

  • LawrenceLam
    2016-02-26 20:26:24
    已采纳

    这取决于自己限定的结束条件,例如

    fun(int a)

    {    int  n;

         if (a==0||a==1)n=1;

         else n=fun(a-1)*a;

         return n;

    }

    当a大于1,程序就会不停地递归直至a=1求出fun(1)的值,进而一层层求出fun(2)......fun(a),最后返回a的阶乘