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