Java必做算法题-求1+2!+3!+...+20!的和(递归方法)

该博客主要介绍用递归方法求1+2!+3!+…+20!的和。先阐述阶乘概念,即一个数从1到自身整数相乘。接着说明解题思路,先获取每个阶乘值,再将其相加,最后用递归方法实现,还给出了求阶乘积及阶乘和相加的代码示例。


求1+2!+3!+…+20!的和(递归方法)

解题思路,
第一步要先获取每个阶乘的值
第二步,把每个值相加
第三步想如何用递归方法 实现


一、什么是阶乘?

阶乘的意思就是把这个数的,从1到自身的整数 相乘
2!= 1 * 2
3!= 1 * 2 * 3
4!= 1 * 2 * 3 * 4
5!= 1 * 2 * 3 * 4 * 5
以此类推

二、递归方法 求阶乘的积

求n数的阶乘= n *(n-1)!

5!= 1 * 2 * 3 * 4 * 5 即 5!= 5 * 4!;
4!= 1 * 2 * 3 * 4 即 4!=4 * 3!;

代码如下(示例):

 //阶乘返回值
    public static long factorial(int number) {
        if (number == 1||number==0) {
            return 1;
        } else{
            return  number * factorial(number - 1);
        }
    }

2.递归方法 求每个阶乘的积相加的和

定义一个sum用来接收使用factorial方法后返回阶乘的积

代码如下(示例):

//计算各阶层的和
    public static long factorialSum(int number){
        if (number == 0||number==1) {
            return 1;
        } else{
            long sum =0;
             sum += factorial(number);
             return sum+factorialSum(number-1);
        }
    }

完整的代码

public class Task1217_3 {
    public static void main(String[] args) {
        System.out.println(factorialSum(20));
    }
    //阶乘返回值
    public static long factorial(int number) {
        if (number == 1||number==0) {
            return 1;
        } else{
            return  number * factorial(number - 1);
        }
    }
    //计算各阶层的和
    public static long factorialSum(int number){
        if (number == 0||number==1) {
            return 1;
        } else{
            long sum =0;
             sum += factorial(number);
             return sum+factorialSum(number-1);
        }
    }
}
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值