JavaSE习题 求N的阶乘和阶乘和!

文章讲述了如何使用Java递归算法求解N的阶乘,并扩展至求阶乘和的计算,通过示例代码展示了求阶乘和的方法。
摘要由CSDN通过智能技术生成

1 求N的阶乘

题目分析:

  1. 它的起始条件为: N = 1 的时候, N! 为 1,这个起始条件相当于递归的结束条件。
  2. 递归公式: 求 N! , 直接不好求, 可以把问题转换成 N! = N * (N-1)!

解题代码如下:

public class test2 {
    public static int fac(int n){
        if(n == 1){
            return 1;
        }
        return n* fac(n-1);
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        System.out.println(fac(n));
    }
}

2 求阶乘和

题目分析: 本题中,我们可以把求一个数字的阶乘定义为一个方法,传入不同的值,求出不同的阶乘,最后进行累加。
解题代码如下:

public class test2 {
       public static int sum(int n){
           int summ = 0;
           for (int i = 1; i <=n; i++) {
               summ += fac(n);
           }
           return summ;
       }
       public static int fac(int n){
           if(n == 1){
               return 1;
           }
           return n* fac(n-1);
       }
       public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
           int n = scanner.nextInt();
           System.out.println(sum(n));
}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值