java流程控制(4)可变参数与递归

java流程控制(4)可变参数与递归,第1张

可变参数与递归讲解 可变参数
  • 从jdk5开始,java支持同类型的可变参数给一的个方法。


  • 在方法声明中,在指定参数类型后加一个省略号(…)。


  • 一个方法只能指定一个可变参数,他必须是方法的最后一个参数。


    任何普通参数必须在它之前声明。


    举例:

    public static void max(int a,int b,double...numbers){
    if(numbers.length==0){        //length是数组的程度。


    System.out.println("111); } }

    解释:其实这是相当于重载函数,不过比重载函数更简单,如下面几个:

    max(5,7,1.0,2.0,3.0);
    max(57,8.0,5.4,5.2,5.9,8.7)
     max(47,8.0,5.4,5.2,5.9,8.78.9)
    

    虽然形参个数不同,但都是符合上面的方法的,这样就能想通了。


递归讲解
  • a方法调用b方法很容易理解,递归是自己调用自己。


  • 利用好递归可以用简单的程序来解决一些复杂的问题。


    他通常把大型的问题层层转化为一个与原问题相似但是规模较小的问题来求解,递归策略只需少量的程序就可以描述解题过程需要的多次重复计算,大大减少了程序的代码量。


    递归的能力在于用有限的语句来定义对象的无限集合。


  • 递归结构包括两个部分:

    递归头:什么时候不调用自身方法。


    递归体:什么时候调用自身方法。


    举例:斐波那契数列

    斐波那契数列的排列是:0,1,1,2,3,5,8,13,21,34,55,89,144……依次类推下去,你会发现,它后一个数等于前面两个数的和。


    在这个数列中的数字,就被称为斐波那契数。


 public static int q(int n){

        if (n<=1)
        {return n;}
        else{return q(n-1)+q(n-2);}
    }

f(n)={n,n<= 1

f(n−1)+f(n−2),n>1

依据表达式来写算法。


外插链接:(50条消息) 递归整理及几个经典题目_乌枭的博客-CSDN博客_递归例题

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存