10.28作业

来源:互联网 发布:山师教务处网络教育 编辑:程序博客网 时间:2024/06/10 17:03

1:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?(使用递归去解决)

public class Test {public static void main(String[] args) {int m=3;int s1=1;int s2=1;int sum=0;sum=Count(m,s1,s2);System.out.println("第二十个月的兔子对数为:"+sum);}public static int Count(int m,int s1,int s2){int temp;if(m==20){return s2;}else{temp=s2;s2=s1+s2;s1=temp;return Count(m+1,s1,s2);}}}

结果为:
第二十个月的兔子对数为:4181

2:定义一个数组,比如:int[] arr = {13,24,57,69,80}使用二分查找查找这个数组中的24元素对应的索引(可以不写这个题,下去预习什么是二分查找)

public class Test {public static void main(String[] args) {int [] arr={13,24,57,69,80};System.out.println("请输入你要查找的元素:");Scanner sc=new Scanner(System.in);int temp=sc.nextInt();int top=binarySearch(arr,temp);if(top>=0){System.out.println("你输入的元素位置为:"+top);}else{System.out.println("没找到你想要的元素!");}}public static int binarySearch(int [] arr,int temp){int low=0;int high=arr.length-1;//确保不会越界while((low<=high) && (low<=arr.length-1) && (high<=arr.length-1)){//计算中间值int middle=(low+high)/2;if(temp==arr[middle]){return middle;}else if(temp<arr[middle]){high=middle-1;}else{low=middle+1;}}return -1;}}

结果为:
请输入你要查找的元素:
24
你输入的元素位置为:1

3:统计大串中小串出现的次数
举例:在字符串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中java出

现了5次

public class Test {public static void main(String[] args) {System.out.println("请输入一段字符串:");Scanner sc=new Scanner(System.in);String s=sc.nextLine();System.out.println("请输入你想查找的字符串:");Scanner sc1=new Scanner(System.in);String s1=sc1.nextLine();int count=Count(s,s1);System.out.println("查找的字符串总共出现"+count+"次");}public static int Count(String s,String s1){int count=0;int temp=0;temp=s.indexOf(s1,temp);if(temp>=0){return s.indexOf(s1, temp);}return count+1;}}
结果为:
请输入一段字符串:
woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun
请输入你想查找的字符串:
java
查找的字符串总共出现5次