【JAVA_SE】作业练习1029

来源:互联网 发布:dchp mac地址 时间 编辑:程序博客网 时间:2024/06/07 07:04

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;    }}
原创粉丝点击