public class Main {// 设置保存和的变量static int sum = 0;public static void main(String[] args) {int begin = 1, end = 10;// 调用方法一 sum =0;sum = add(begin, end);System.out.println("===>>> 从 " + begin + " 开始加到 " + end + " 的结果是" + sum);System.out.println();// 调用方法二sum =0;addB(begin, end);System.out.println("===>>> 从 " + begin + " 开始加到 " + end + " 的结果是" + sum);System.out.println();}// 方法一(从尾处开始加)public static int add(int begin, int end) {if (begin <= end) {sum = sum + end;System.out.println("当前begin为 " + begin + " 当前end为 " + end + " 当前sum为 " + sum);add(begin, end-1);}return sum;}// 方法二(首尾同时加)public static void addB(int begin, int end) {if (begin <= end) {sum = sum + begin + end;System.out.println("当前begin为 " + begin + " 当前end为 " + end + " 当前sum为 " + sum);addB(begin + 1, end - 1);}}
}
结果:
当前begin为 1 当前end为 10 当前sum为 10
当前begin为 1 当前end为 9 当前sum为 19
当前begin为 1 当前end为 8 当前sum为 27
当前begin为 1 当前end为 7 当前sum为 34
当前begin为 1 当前end为 6 当前sum为 40
当前begin为 1 当前end为 5 当前sum为 45
当前begin为 1 当前end为 4 当前sum为 49
当前begin为 1 当前end为 3 当前sum为 52
当前begin为 1 当前end为 2 当前sum为 54
当前begin为 1 当前end为 1 当前sum为 55
===>>> 从 1 开始加到 10 的结果是55
当前begin为 1 当前end为 10 当前sum为 11
当前begin为 2 当前end为 9 当前sum为 22
当前begin为 3 当前end为 8 当前sum为 33
当前begin为 4 当前end为 7 当前sum为 44
当前begin为 5 当前end为 6 当前sum为 55
===>>> 从 1 开始加到 10 的结果是55