publicclassFactorial{//循环阶乘publicstaticintforFavtorial(int n){int result =1;if(n ==1){return1;}for(int i =1; i <= n; i++){
result *= i;}return result;}//递归阶乘publicstaticintrecurFavtorial(int n){if(n ==1){return1;}returnrecurFavtorial(n-1)*n;}publicstaticvoidmain(String[] args){
System.out.println(Factorial.forFavtorial(6));
System.out.println(Factorial.recurFavtorial(6));}}
测试
Fibonacci数列
源代码
publicclassFactorial{//循环阶乘publicstaticintforFavtorial(int n){int result =1;if(n ==1){return1;}for(int i =1; i <= n; i++){
result *= i;}return result;}//递归阶乘publicstaticintrecurFavtorial(int n){if(n ==1){return1;}returnrecurFavtorial(n-1)*n;}publicstaticvoidmain(String[] args){
System.out.println(Factorial.forFavtorial(6));
System.out.println(Factorial.recurFavtorial(6));}}
测试
二分查找
源代码
publicclassBinarySearch{//循环二分查找publicstaticintforBinarySearch(int[] array,int value){//记录是否找到int flag =-1;//记录 左边界and右边界//定义工具变量int left =0;int right = array.length;int mid =0;//while循环查找 左边界小于有边界while(left <= right){
mid =(left + right)/2;if(array[mid]== value){//找到value 返回1
flag =1;
left = right +1;}elseif(array[mid]> value){//大于目标值向左查找
right = mid -1;}else{//小于目标值向右查找
left = mid +1;}}return flag;}//递归二分查找publicstaticintRecurBinarySearch(int[] array,int left,int right,int value){//左边界小于右边界 继续查找if(left <= right){int mid =(left + right)/2;//等于value 找到返回 1if(array[mid]== value){return1;}//大于value 查找mid左边if(array[mid]> value){returnRecurBinarySearch(array,left,mid -1,value);}//小于value 查找mid右边returnRecurBinarySearch(array,mid +1,right,value);}return-1;}publicstaticvoidmain(String[] args){int[] num ={11,22,33,44,54,66,100};
System.out.println(Arrays.toString(num));
System.out.println(BinarySearch.forBinarySearch(num,56));
System.out.println(BinarySearch.RecurBinarySearch(num,0,num.length,54));}}
测试
回文字符串
源代码
publicclassPalindromeString{//循环产生回文字符串publicstatic String getForPalindrome(String str){
StringBuilder stringBuilder =newStringBuilder();
stringBuilder.append(str);for(int i = str.length()-1; i >=0; i--){
stringBuilder.append(str.charAt(i));}return stringBuilder.toString();}//循环判断字符串是否是回文字符串publicstaticbooleanisForPalindrome(String str){for(int i =0; i < str.length(); i++){if(str.charAt(i)!= str.charAt(str.length()-1-i)){returnfalse;}}returntrue;}//递归判断字符串是否是回文字符串publicstaticbooleanisRecurPalindrome(String str,int n){if(str.charAt(n)!= str.charAt(str.length()-1-n)){returnfalse;}if(n ==(str.length()/2)){returntrue;}returnisRecurPalindrome(str,n+1);}//测试publicstaticvoidmain(String[] args){
System.out.println( PalindromeString.getForPalindrome("123"));
System.out.println(PalindromeString.isForPalindrome("123421"));
System.out.println(PalindromeString.isRecurPalindrome("123421",0));}}