递归实现连续整数求和及阶乘,如何实现?

KLQ 2020-08-12 15:56:30 java常见问答 4579

你知道,如何用递归实现连续整数求和及阶乘吗?很多人表示对于具体的实现方式不是很清楚,下面就一起通过简单的例子来了解一下吧。

package com.kite.test.recursion;
public class Recursion
{
    public static void main(String[] args)
    {
        // 递归实现连续整数1~n的和
        int sum = calSum(100);
        System.out.println("递归实现连续整数1~n的和:" + sum);
        // 递归实现连续整数1~n的和
        int sum2 = calSum2(1);
        System.out.println("递归实现连续整数1~n的和:" + sum2);
        // for循环实现连续整数1~n的和
        int sum3 = calSum3(100);
        System.out.println("for循环实现:sum3=" + sum3);
        // 递归实现连续整数1~n的阶乘
        int result = calResult(5);
        System.out.println("递归实现连续整数1~n阶乘:result=" + result);
    }
    /**
     * 递归实现1,2,3,4,······n 的和
     * 
     * @param n
     * @return
     */
    public static int calSum(int n)
    {
        if (n == 1)
        {
            return 1;
        }
        return n + calSum(n - 1);
    }
    /**
     * 递归实现连续整数的和
     * 
     * @param n
     * @return
     */
    public static int calSum2(int n)
    {
        if (n == 100)
        {
            return 100;
        }
        return n + calSum2(n + 1);
    }
    /**
     * for循环实现连续整数的和
     * 
     * @param n
     * @return
     */
    public static int calSum3(int n)
    {
        int sum = 0;
        for (int i = 1; i <= n; i++)
        {
            sum += i;
        }
        return sum;
    }
    /**
     * 递归实现连续整数的阶乘
     * @param n
     * @return
     */
    public static int calResult(int n)
    {
        if (n == 1)
        {
            return 1;
        }
        return n * calResult(n - 1);
    }
}

这个实现方式还是很简单的,希望上面的内容可以对你有所帮助。你想了解java方面的java基础知识,可以通过本站的内容来进行了解和学习哦。

推荐阅读:

java递归求阶乘,java实现递归阶乘详解

java求1+2!+3!+...+20!的和,java1到20的阶乘

java基础算法、递归调用、字符串切割详解