斐波那契数列
斐波那契数列可以运用迭代的方法.注意事项如下:
-
递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。
-
在递归中虽然有限定条件,但是递归深度不能太深,否则效率低下,或者也会发生栈内存溢出。
-
能够使用循环代替的,尽量使用循环代替递归
-
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号底片!