• C基础之递归(思想很重要,学会找规律)


    递归思想的条件:1.函数自己调用自己  2.函数必须有一个固定的返回值(如果没有这个条件会发生死循环)

    ----规律很重要

    简单递归题目一:

    设计一个函数计算一个整数的n次方,比如2的3次方,就是8

    步骤:

    1.定义方法,以及方法中的参数--power( int base ,int n )

    2.根据定义的方法来找规律:

    函数终止条件:n==0时,返回1;n<0时,返回-1;红色箭头表示函数的执行过程蓝色箭头表示函数达到条件后开始一层一层的返回值,具体代码如下:

    1 long power(int base, int n)
    2 {
    3     if (n<0) return -1;
    4     
    5     if (n == 0) return 1;
    6     
    7     // n一定>0
    8     return power(base, n-1) * base;
    9 }

    简单递归题目二:

    设计一个函数,计算1+2+3+4+5+6+7+8+...+n的值
    要求n必须>0

    步骤:

    1.定义方法,以及方法中的参数--leiJia( int n )

    2.根据定义的方法来找规律:

    leiJia(0)==0;

    leiJia(1)==leiJia(0) + 1;

    leiJia(2)==leiJia(1) + 2;

    leiJia(3)==leiJia(2) + 3;
          .
          .
          .

    leiJia(n)==leiJia(n-1) + n;

    函数终止条件:n==1时,返回1;n<0时,返回0;具体代码如下:

     1 long leiJia(int n)
     2 {
     3     /*
     4     // 这里的0随便
     5     if (n<=0) return 0;
     6     
     7     // 仔细分析一下,可以发现这行代码可以省略
     8     //if (n == 1) return 1;
     9     return leiJia(n-1) + n;
    10      */
    11     
    12     return (n<=0) ? 0 : ( leiJia(n-1) + n );
    13 }

    简单递归题目三:

    设计一个函数计算1!+2!+3!+……+n!的值
    4! = 1 * 2 * 3 * 4;
    n! = 1 * 2 *.... *n

    步骤:

    1.定义方法,以及方法中的参数--pidAdd(n);

    2.根据定义的方法来找规律:

    pidAdd(1)==1;

    pidAdd(2)==pidAdd(1) + 2! ;

    pidAdd(3)==pidAdd(2) + 3! ;
          .
          .
          .

    pidAdd(n)==pidAdd(n-1) + n! ;

    函数终止条件:n==1时,返回1;n<0时,返回0;具体代码如下:

    1 long pieAdd(int n)
    2 {
    3     if (n == 1) return 1;
    4     return pieAdd(n-1) * dieCheng(n);//dieCheng 函数实现的是从1*2*3*...*n
    5 }

    递归的学习不止这些,在以后的学习过程中继续整理,共同学习。

  • 相关阅读:
    SpringBoot+CXF下Https调用webservice跳过安全证书的配置
    程序员的长安十二时辰:Java实现从Google oauth2.0认证调用谷歌内部api
    springboot集成activiti6.0多数据源的配置
    activiti工作流委托功能的设计和实现
    vue.js带复选框表单的增删改查
    bootstrap-treeview后台Json数据的封装及前台的显示
    你好,Spring!
    超大份线程池,干杯,兄弟!陆
    嗯!这篇多线程不错!伍
    是兄弟!就来看这篇多线程!叁
  • 原文地址:https://www.cnblogs.com/gchlcc/p/5102764.html
Copyright © 2020-2023  润新知