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

可变参数与递归讲解

可变参数

  • 从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博客_递归例题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值