javaSE-P5
1:递归练习:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?
/**
* 1:递归练习:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少
*
*/
public class rabbit {
static int Sum(int month)
{
if(month==1||month==2)
return 1;
else
return Sum(month-1)+Sum(month-2);
}
public static void main(String[] args) {
System.out.println(rabbit.Sum(4)); //3
}
}
2:定义一个数组,比如:int[] arr = {13,24,57,69,80}使用二分查找查找这个数组中的24元素对应的索引
package p5;
/*
* 定义一个数组,比如:int[] arr = {13,24,57,69,80}使用二分查找查找这个数组中的24元素对应的索引
*/
public class BinarySearch {
static int binarySearch(int[] array,int left,int right,int x) {
int middle=(left+right)/2;
if(x==array[middle])
return middle;
if(x<array[middle])
return binarySearch(array,left,middle-1,x);
else
return binarySearch(array,middle+1,right,x);
}
public static void main(String[] args) {
int[] arr = {13,24,57,69,80};
System.out.println(binarySearch(arr,0,arr.length-1,24));//1
}
}
3:统计大串中小串出现的次数
举例:在字符串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中java出
现了5次
package p5;
/*
* 3:统计大串中小串出现的次数
举例:在字符串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中java出
现了5次
利用:
public int indexOf(String str,int fromIndex)
从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引
public String substring(int start)
返回一个新的 String,它包含此字符序列当前所包含的字符子序列。该子字符串始于指定索引处的字符,一直到此字符串末尾。
public boolean contains(CharSequence s)当且仅当此字符串包含指定的 char 值序列时,返回 true
*/
public class CountString {
static int countString(String allStr,String searchStr){
int n=0;
while(allStr.contains(searchStr)) {
int start=allStr.indexOf(searchStr)+1;
allStr=allStr.substring(start);
n++;
}
return n;
}
public static void main(String[] args) {
String str="woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";
System.out.println(CountString.countString(str,"java"));//5
}
}