编写一个java程序,在屏幕上输出1!+2!+3!...+10!的和(递归和for循环)

编写一个java程序,在屏幕上输出1!+2!+3!…+10!的和

问题呈现

Problem Description

求1!+2!+3!+…+20!的和

Input

Output
4037913

方法一:利用for循环

package demo1;
public class Founction {
    /**
     * 编写一个java程序,在屏幕上输出1!+2!+3!...+10!的和
     *
     * @param args
     */
    public static void main(String args[]){
        //定义一个总和的变量
        int total = 0;
        for (int i=1; i<=10; i++){
            //累加 total = total + fn(i)
            total +=fn(i);
        }
        System.out.println(total);
    }
    
    /**
     * 给定一个数,求这个数的阶乘
     * 5!=5*4*3*2*1
     * 4!=4*3*2*1
     * 3!=3*2*1
     * 2!=2*1
     * 1!=1
     * @param num
     * @return
     */
    public static int fn(int num){
            //定义一个结果变量
            int result = 1;
            //遍历这个数字
            for (int i=num; i>0; i--){
                //累乘
                result *=i;
            }
            return result;
        }
}

方法二:采用递归

package demo1;
public class Founction {
    /**
     * 编写一个java程序,在屏幕上输出1!+2!+3!...+10!的和
     *
     * @param args
     */
    public static void main(String args[]){
        //定义一个总和的变量
        int total = 0;
        for (int i=1; i<=10; i++){
            //累加 total = total + fn(i)
            total +=fn(i);
        }
        System.out.println(total);

    }

    /**
     * 给定一个数,求这个数的阶乘
     * 5!=5*4!
     * 4!=4*3!
     * 3!=3*!
     * 2!=2*1!
     * 1!=1
     * fn(num) = num * fn(num-1);
     *
     * 递归就是方法自身调用自身,一定要有退出的标识
     * @return
     */
    public static int fn(int num){
        //定义一个结果变量
        int result = 1;
        if(num>1){
            //方法自身调用自身
            result = num * fn(num-1);
        }
        return result;
    }
}

★喜欢的话,还请多多点赞与关注! 感谢支持!
内容来源:腾讯课堂Java零基础入门到年薪30W

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值