zoukankan      html  css  js  c++  java
  • 函数编程中的递归思想

    函数编程中的递归思想

    递归_百度百科
    递归_维基百科

    c语言中的函数式编程,允许一个函数里面调用一个或多个函数, 例如:

    void Bfun(int x) {
      printf("%d
    ", x);
    }
    
    void Afun() {
      Bfun(3);
      printf("aaa");
    }
    

    在上面的代码中Afun()调用Bfun(),必须要等Bfun()的所有语句都执行完了,才会执行Afun()中剩下的语句,所以结果是如下:

    3
    aaa
    

     而一个函数不仅可以调用别的函数,同时也可以调用自身(这个时候被调用函数参数一般和调用函数的参数不同),这种函数调用自身的编程思想我们就叫做递归。

    举个例子:

    void fun(int x) {
      if (x == 0) return;
      fun(x - 1);
      printf("%d
    ", x);
    }
    

    如果其他函数调用fun时最初传入的参数为5,那么程序将如下执行:

    fun(2)内部:
      x为2,非零,跳出判断;
      执行fun(1) (fun(1)内部) {
        x为1,非零,跳出判断;
        执行fun(0) (fun(0)内部) {
          x为零,返回;
        }
        打印x值,为1;
      }
      打印x值,为2;
    }
    

     希望大家对递归能有一个简洁明了的理解!

  • 相关阅读:
    VMware搭建VMware ESXi 6.7
    77. Combinations
    47. Permutations II
    system design
    37. Sudoku Solver
    12月9日学习日志
    12月8日学习日志
    12月7日学习日志
    12月6日学习日志
    12月5日学习日志
  • 原文地址:https://www.cnblogs.com/DingCao/p/Recursion.html
Copyright © 2011-2022 走看看