JavaSE第二周(斐波那契数列)

斐波那契数列

斐波那契数列可以运用迭代的方法.注意事项如下:

  • 递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。

  • 在递归中虽然有限定条件,但是递归深度不能太深,否则效率低下,或者也会发生栈内存溢出。

    • 能够使用循环代替的,尽量使用循环代替递归



public class Java11 {
    public static void main(String[] args) {
        FeiboUtils f = new FeiboUtils();
        for (int i = 1; i <= 10; i++) {
            System.out.println("斐波那契数列第" + i + "个数是:" + f.getFeibo(i));
        }
        System.out.println(f.getFeibo(20));
    }
}

public class FeiboUtils {
    public int getFeibo(int n) {
        if (n < 1) {
            return 1;
        }
        if (n == 1 || n == 2) {
            return 1;
        }
        return getFeibo(n - 2) + getFeibo(n - 1);
    }
}

案例,用重载实现:

(1)定义方法求两个整数的最大值

(2)定义方法求三个整数的最大值

(3)定义方法求两个小数的最大值

(4)定义方法求n个整数最大值


public class MathTool {
    //(1)定义方法求两个整数的最大值
    public int getMax(int a, int b) {
        return a > b ? a : b;
    }

    //(2)定义方法求三个整数的最大值
    public int getMax2(int a, int b, int c) {
        return getMax(getMax(a, b), c);
    }

    //(3)定义方法求两个小数的最大值
    public double getMax3(double a, double b) {
        return a > b ? a : b;
    }

    //(4)定义方法求n个整数最大值
    public int getMax4(int... a) {
        int max = a[0];
        for (int i = 0; i < a.length; i++) {
            if (max < a[i]) {
                max = a[i];
            }
        }
        return max;
    }

}

public class Java12 {
    public static void main(String[] args) {
        MathTool tool=new MathTool();
        System.out.println(tool.getMax(11, 999));
        System.out.println(tool.getMax2(12, 34, 23));
        System.out.println(tool.getMax3(2.94, 23.4));
        System.out.println(tool.getMax4(12, 32, 123, 41, 45, 32,
                40, 3, 4, 23, 143, 34, 32, 98));

    }
}

总结:

        第二周开始学习类和对象,所谓类是一种抽象的事物,如车,房子,国家等。而对象则是将类具体化,如宝马,美国等。这两个案例很好的运用了迭代和方法的重载。

        我想我们的人生应当由我们自己去感受,去选择自己热爱的生活,也许不是每个都能成想成为的人,去做想做的事,但是人生也因此充满神秘感,感受当下的每一个美好瞬间。希望我们都能找到属于自己的25号底片!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值