递归:重复中的变化,变化中的重复
public static void main(String[] args) {
f(10);
System.out.println("求n阶乘:"+f1(10));
f2(1,10);
System.out.println("数组求和:"+f3(new int[] {1,2,3,4,5},0));
System.out.println("翻转字符串"+f4("abcd",3));
}
public static void f(int i) {
if(i==0) {
System.out.println("000");
return;
}
f(i-1);
}
public static int f1(int n) {
if(n==1) {
return 1;
}
return n*f1(n-1);
}
public static void f2(int i,int j) {
if(i>j) {
return;
}
System.out.println(i);
f2(i+1,j);
}
public static int f3(int[] arr,int start) {
if(start==arr.length-1) {
return arr[start];
}
return arr[start]+f3(arr,start+1);
}
public static String f4(String str,int end) {
if(end==0){
return ""+str.charAt(0);
}
return str.charAt(end)+f4(str,end-1);
}