Java算法–第二章–查找与排序(1)递归基础
1.阶乘
2.打印i-j
3.对arr的所有元素求和
4.反转字符串
package section02;
public class java1 {
public static void main(String[] args) {
}
/*
* 阶乘:
* 找重复:n*(n-1)的阶乘,求n-1的阶乘是原问题的重复(规模更小)----子问题
* 找变化:变化的量应该作为参数
* 找边界:出口
*/
static int f1(int n) {
if (n == 1)
return 1;
return n * f1(n - 1);
}
/*
* 打印i-j
*/
static void f2(int i, int j) {
if (i > j)
return;
System.out.println(i);
f2(i + 1,j);
}
/*
* 对arr的所有元素求和
*/
static int f3(int[] arr,int begin) {
if(begin == arr.length - 1) {
return arr[begin];
}
return arr[begin]+f3(arr,begin+1);
}
/*
* 反转字符串
*/
static String f4(String str,int end) {
if(end == 0) {
return "" + str.charAt(0);
}
return str.charAt(end)+f4(str,end - 1);
}
}