1. 程式人生 > >【JAVA_SE】作業練習1029

【JAVA_SE】作業練習1029

1.有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問第二十個月的兔子對數為多少?(使用遞迴去解決)

public class Demo1 {
    public static void main(String[] args) {
        System.out.println(f(20));
        int sum=0;
        for(int i=1;i<=20;i++){
            sum+=f(i);
        }
        System.out.println(sum);
    }
    public
static int f(int n){ if (n==1||n==2){ return 1; } return f(n-1)+f(n-2);//遞推公式 } }

2.定義一個數組,比如:int[] arr = {13,24,57,69,80}使用二分查詢查詢這個陣列中的24元素對應的索引

public class Demo2 {
    public static void main(String[] args) {
        int[] arr = {13,24,57,69,80};
        System.out
.println(getNumber(arr,24));//1 } public static int getNumber(int [] arr,int target){ int max=arr.length-1; int min=0; int mid=(max+min)/2; while(true){ if(target>arr[mid]){ min=mid+1; }else if(target<arr[mid]){ max=mid-1
; }else{ return mid; } mid=(max+min)/2; if(min>max){ return -1; } } } }

3.統計大串中小串出現的次數
舉例:在字串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中java出現了5次

public class Demo3 {
    public static void main(String[] args) {
        String str="woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";
        System.out.println("java出現了"+getNum(str,"java")+"次");
    }
    public static int getNum(String str,String target){
        int num=0;
        for(int i=0;i<str.length()-3;i++){
            String str2=str.substring(i, i+4);
            if("java".equals(str2)){
                num++;
            }
        }
        return num;
    }
}