[递归]-数组求和

public class sum {

// 普通循环
public static int fn1(int[] a) {
	int sum = 0;
	for (int i = 0; i < a.length; i++) {
		sum += a[i];
	}
	return sum;
}

// 递归,已知数组和开始位置
public static int fn2(int[] a, int begin) {
	if (begin == a.length)
		return 0;
	int sum = 0;
	sum += fn2(a, begin + 1);
	return sum + a[begin];
}

// 递归,已知数组和结束位置
public static int fn3(int[] a, int end) {
	int sum = 0;
	if (end > 0)
		sum += fn3(a, end - 1);
	return sum + a[end];
}

public static void main(String[] args) {
	int[] arr = { 2, 7, 39, 102 };
	System.out.println(fn1(arr));
	System.out.println(fn2(arr, 0));
	System.out.println(fn3(arr, arr.length - 1));
}

}

posted @ 2017-01-23 11:53  Hathaway_M  阅读(159)  评论(0)    收藏  举报