[递归]-数组求和

浪子不回头ぞ 提交于 2019-12-24 09:15:01

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));
}

}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!