1.爬樓地
爬20個臺階的爬法:=f(19)+f'(18)
經典斐波拉契數列問題?
public class demo4 {//爬樓梯問題public static void main(String[] args) {System.out.println(getSum(20));}public static int getSum(int n) {if (n == 1)return 1;if (n == 2)return 2;return getSum(n - 1) + getSum(n - 2);}
}
2.按照要求排序問題
package lx;import java.util.Arrays;
import java.util.Comparator;public class demo1 {public static void main(String[] args) {Girlfriend g1 = new Girlfriend("zhangsan", 18, 90);Girlfriend g2 = new Girlfriend("lisi", 19, 100);Girlfriend g3 = new Girlfriend("wangwu", 20, 110);//定義數組存儲對象Girlfriend[] arr = {g1, g2, g3};// Arrays.sort(arr, new Comparator<Girlfriend>() {/* public int compare(Girlfriend o1, Girlfriend o2) {//按照年齡的大小進行比較,年齡一樣,按照身高比較,身高一樣按照姓名的字母比較double tmp = o1.getAge() - o2.getAge();tmp = tmp == 0 ? o1.getHeight() - o2.getHeight() : tmp;tmp = tmp == 0 ? o1.getName().compareTo(o2.getName()) : tmp;if (tmp < 0) {return -1;} else if (tmp > 0) {return 1;} elsereturn 0;}});*///lambda表達式//()->{}//():對應抽象方法的形參//{}:方法體Arrays.sort(arr, (o1, o2) -> {//按照年齡的大小進行比較,年齡一樣,按照身高比較,身高一樣按照姓名的字母比較double tmp = o1.getAge() - o2.getAge();tmp = tmp == 0 ? o1.getHeight() - o2.getHeight() : tmp;tmp = tmp == 0 ? o1.getName().compareTo(o2.getName()) : tmp;if (tmp < 0) {return -1;} else if (tmp > 0) {return 1;} elsereturn 0;});System.out.println(Arrays.toString(arr));}
}
女朋友類
package lx;public class Girlfriend {private String name;private int age;private int height;public Girlfriend(String name, int age, int height) {this.name = name;this.age = age;this.height = height;}public Girlfriend() {}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getHeight() {return height;}public void setHeight(int height) {this.height = height;}@Overridepublic String toString() {return "Girlfriend{" +"name='" + name + '\'' +", age=" + age +", height=" + height +'}';}
}
3.兔子問題(斐波拉契數列)
package lx;public class demo2 {public static void main(String[] args) {//斐波那契數列int[] arr = new int[12];arr[0] = 1;arr[1] = 1;for (int i = 2; i < arr.length; i++) {arr[i] = arr[i - 1] + arr[i - 2];}System.out.println(arr[11]);}
}
4.猴子吃桃問題
package lx;public class demo3 {public static void main(String[] args) {//猴子偷桃問題/*有一堆桃子,猴子第一天吃了其實一半,并且多吃了一個!以后每天猴子都吃當前剩下來的一半,然后多吃一個第10天的時候(還沒有吃),發現就剩下一個桃子,請問最初總共多少個桃子day10 1;day9=(day10+1)*2 4day8=(day9+1)*2 10每一天的桃子的數量都是后一天數量+1,*2*///method01();/*1.出口day==10 剩下一個2. 規律每一天的桃子的數量都是后一天數量+1,*2*/System.out.println(getCount(1));}public static int getCount(int day) {if (day <= 0 || day >= 11) {System.out.println("當前時間錯誤");return -1;}//出口if (day == 10) {return 1;} else {// 每一天的桃子的數量都是后一天數量+1,*2return (getCount(day + 1) + 1) * 2;}}private static void method01() {int day = 0;int x = 1;int y = 0;for (day = 9; day >= 1; day--) {y = (x + 1) * 2;x = y;}System.out.println(y);}
}