Java的递归是一种非常有趣的算法,可以用来解决很多问题。今天我们来探讨一下如何使用递归计算从1到100的和。
public static int sum(int n) {if (n == 1) {return 1;}return n + sum(n-1);}public static void main(String[] args) {int s = sum(100);System.out.println("1到100的和为:" + s);}
这段代码非常简单,我们定义了一个递归函数sum,它接受一个int类型的参数n,返回从1到n的和。当n为1时,我们直接返回1。否则,我们计算n加上1到n-1的和,然后返回这个值。
在main函数中,我们调用了sum(100),计算1到100的和并输出结果。如果我们打印输出每一次递归调用的结果,可以发现递归的过程是这样的:
sum(100) = 100 + sum(99)sum(99) = 99 + sum(98)sum(98) = 98 + sum(97)...sum(3) = 3 + sum(2)sum(2) = 2 + sum(1)sum(1) = 1
最终,我们得到的结果为1到100的和,也就是5050。
递归是一种非常灵活且强大的算法,能够解决很多问题。当然,递归的实现需要注意递归边界的判断和递归函数的调用,否则容易造成死循环等问题。