1到n的和
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = new Scanner(System.in).nextInt();
System.out.println(f(n));
System.out.println(f2(n));
}
/*1到n的和 好比站着一排人 自己当然不知道自己在第几位 就问前面一位 前面也不知道就继续往前问 当第一个问第0个才知道自己前面没人 (这也是就是递归的出口) 他知道自己是第一位 就给后面说我是第一位 第二位也就知道他是第二位了 以此类推 直到自己
当然 我们算的是1到n的和 所以不光知道自己是第几位 还要把数值累加起来
如果不理解 看for循环
*/
public static int f(int n) {
if (n == 0) {
return 0;
}
return n + f(n - 1);
}
/*
循环结束的条件是i>=0 递归的出口就是n==0 for循环是每次n-- 递归n-1
求和是sum+=i 加到i为0的时候 递归第n位加上上一位直到第一位前面为0的时候
*/
public static int f2(int n) {
int sum=0;
for(int i=n;i>=0;i--) {
sum+=i;
}
return sum;
}
如果理解了 可以尝试 x 到 n的和
因为我也是初学着 以互相学习为目的 当然也很多地方不对 希望指出