递归是一种方法调用自己的方式。在数学中的数列中这个是很普遍的,比如递推公式an = an_1 + 1
  本章主要用递归来解决一些常见的问题。

  三角数字是这样的一个数字序列,1 3 6 10 15 21...
  这个数字序列的规律是:a1 = 1,n >= 2时候,an = an_1 + n

方法1:使用递归循环查找第n项

  我们可以看到第n项是1+2+3...+n的结果,所以可以用一个公式来计算

Sn = (1+n)*n/2
package chapter6;

public class Demo01 {
    public static void main(String[] args){
        int n = 5;
        int i = (1 + n)*n/2;
        System.out.println(i);
    }
}

方法2:使用递归来解决

int triangle (int n){
    return (n + triangle(n - 1));
}

代码:
package chapter6;

public class Demo01 {
    public static int triangle(int n){
        if(n == 1){
            return 1;
        }else{
            return (n + triangle(n - 1));
        }
    }
    
    public static void main(String[] args){
        int i = Demo01.triangle(5);
        System.out.println(i);
    }
}
View Code

相关文章: