开发者社区 问答 正文

递归算法可以函数里出现多个分支吗?

递归算法可以函数里出现多个分支吗?

展开
收起
知与谁同 2018-07-18 18:42:15 3258 分享 版权
2 条回答
写回答
取消 提交回答
  • 胜天半子
    可以
    2019-07-17 22:55:34
    赞同 展开评论
  • 最简单的递归是函数直接调用了自己: void Func()
    {
        // ......
        Func();
        // ......
    }

    稍复杂的递归可以是多个函数互相调用形成的间接递归: void FuncA()
    {
        // ......
        FuncB();
        // ......
    }

    void FuncB()
    {
        // ......
        FuncA();
        // ......
    }

    也就是说, 只要函数调用了自己, 无论是直接还是间接, 都算递归. 说它们都是递归倒不是因为教科书上的"定义", 而是递归编程需要关心终止条件, 无限递归会导致线程锁死和栈溢出等问题. 至于题主所问是否可以分支, 当然是可以的, 递归是解决问题的方法, 是编程技巧, 递归函数本身与其他函数并无本质区别.

    2019-07-17 22:55:34
    赞同 展开评论
问答分类:
问答标签:
问答地址: