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