7.1 .二叉树之递归

7.1 .二叉树之递归,第1张

递归函数:

自己调用自己,重复相同的事情

明确:

ABC

AAA

递归函数一定要有退出的条件!

案例:采用递归函数实现打印:1 2 3

分析:

void print(int max) {

        //第三步:给递归函数编写退出条件

        if(max == 1) {

                printf("1 ");

                return; //退出返回

        }

        //第二步:然后发现打印3和打印2和打印1是一样的,所以自己调用自己重复打印printf即可

        //但是打印3之前打印2,打印2之前打印1

        print(max-1);

        //第一步.首先要明确递归函数所要做的重复性事件,对于这个案例,重复性的事件就是打印1个数字

        printf("%d ", max);

        }

int main(void) {

        int max = 3;

        print(max); //调用递归函数

        printf("\n");

        return 0;

}

 

#include 
//main
//  print(int max=3)
//      print(int max=2)
//          print(int max=1)
//              printf:打印1
//              return
//          printf:打印2
//          return
//      printf:打印3
//      return
//  printf:\n
//  return
void print(int max) {
    //第三步:给递归函数编写退出条件
    if(max == 1) {
        printf("1 ");
        return; //退出返回
    }
    //第二步:然后发现打印3和打印2和打印1是一样的,所以自己调用自己重复打印printf即可
    //但是打印3之前打印2,打印2之前打印1
    print(max-1); 
    //第一步.首先要明确递归函数所要做的重复性事件,对于这个案例,重复性的事件就是打印1个数字
    printf("%d ", max);
    return;
}
int main(void) {
    int max = 3;
    print(max); //调用递归函数
    printf("\n");
    return 0;
}

思考:利用递归求数列第n项的值

1 1 2 3 5 8 .....

公式:f(n) = f(n-1) + f(n-2)

#include

int fee(int n) {

        if(n < 3)

                return 1;

        return fee(n-1) + fee(n-2);

        }

        int main(void) {

                int n = 6;

                printf("%d\n", fee(n));

        }

 

思考:利用递归求数列第n的阶乘

公式:n!=n*(n-1)!

#include

int fact(int n) {

        if(n≤1)

                return 1;

        return n*fact(n-1);

}

int main(void) {

        int n = 5;

        printf("%d\n", fact(n));

        return 0;

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1296078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存