• 递归(面试高频题)


    递归(面试高频题)

    就是一个方法,自身调用自身,但递归不适用于较大数据计算,会导致计算器内存不足从而崩溃

    递归包含两个部分:

    1. 递归头:什么时候不调用自身方法。如果没有递归头,就会陷入死循环。

    2. 递归体:什么时候需要调用自身方法。

      递归的算法公式

    package weiwei.method;
    public class Demo5 {
       public static void main(String[] args) {
           System.out.println(f(5));//输出递归
      }
       
       
       
       //5! 5*4*3*2*1
       public static int f(int n){//int一个变量n

           if (n==1){//如果n等于1的时候,他的阶乘就是 1*1,所以结果还是为1
               return 1;//就让他直接输出1
          }else{//如果n不等于1的情况下
               /*输出n*f(n-1),加上n为5,就是5*f(5-1) 然后赋(5-1)结果不为1,就继续下去,
    f(5-1)=4; f(4-1)=3; f(3-1)=2; f(2-1)=1; 到此等于1了之后,就达到了递归的边界条件,
    而1在 n==1的这个条件时,return了一个具体的值,所以1会再次返回找到f(3-1),给他赋一个具体的
    值为2,2又会去给f(4-1)赋值3,这样一直赋值到5,然后5把结果输出给了main方法,这样才得以输出*/
               return n*f(n-1);
          }
      }
    }

    递归和阶乘一样,是一个层层递进的关系,但递归的运行顺序更麻烦,假设递归为5,就可以看做

    5==n时: n* f(n-1); f(n-1); f(n-1); f(n-1)获得确定值1后再次返回输出

    5* f(5-1); f(4-1); f(3-1); f(2-1)从右到左一次赋值过去,最终得到准确的值,再将值给main方法

     

  • 相关阅读:
    [LoadRunner]UTF8字符格式
    Python的数字类型及其技巧
    Python的数据类型总结
    理解Python的迭代器
    一篇文章让你彻底搞清楚Python中self的含义
    Python中类的运算符重载
    深入理解Python中的生成器
    模态窗口点滴
    ASP.NET 防盗链的实现[HttpHandler]
    ASP.NET C# DataTable与Excel互操作示例
  • 原文地址:https://www.cnblogs.com/jinweichaoyouqu/p/13808104.html
Copyright © 2020-2023  润新知