用递归和普通for循环分别求 1+2+3+...+n

    xiaoxiao2021-03-25  156

    最近在复习递归算法时,  脑海突然想能否用刚刚学到的递归方法去解高斯问题呢?

    然后自己动手用常规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 * @return 总和 */ public static int sum2(int n){ int sum = 0; for(int i = 1; i <= n; i++){ sum += i; } return sum; } } 测试结果:

    转载请注明原文地址: https://ju.6miu.com/read-15450.html

    最新回复(0)