递归是一种方法调用自己的方式。在数学中的数列中这个是很普遍的,比如递推公式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); } }