最近在复习递归算法时, 脑海突然想能否用刚刚学到的递归方法去解高斯问题呢?
然后自己动手用常规for循环和递归来编程, 看看二者有何不同, 最后的代码如下:
虽然有点简单, 但是还是值得学习的!特别是递归的思想。
package mi;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println("用递归方法: " + "1+2+3+...+" + n + " = " + sum1(n));
System.out.println("用非递归方法: " + "1+2+3+...+" + n + " = " + sum2(n));
//关闭sc
sc.close();
}
/**
* 用递归求 1+2+3+...+n
* @param n个数
* @return 总和
*/
public static int sum1(int n){
if(n == 1){
return 1;
}
else {
return n + sum1(n-1);
}
}
/**
* 用循环求 1+2+3+...+n
* @param n