首页 > 试题广场 >

计算200以内正整数的阶乘

[编程题]计算200以内正整数的阶乘
  • 热度指数:2763 时间限制:C/C++ 5秒,其他语言10秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
编写一段程序,用于计算200以内正整数的阶乘

要求:  不允许使用任何第三方库。



输入描述:
N为不超过200的正整数



输出描述:
如果N >= 1 并且 N <=200 ,输出N的阶乘
如果N是别的数字,输出 Error

示例1

输入

10

输出

3628800

说明

10的阶乘为  3628800 
import java.util.*;
import java.math.BigInteger;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println(solution(n));
    }
    
    public static BigInteger solution(int n) {
        BigInteger x = BigInteger.valueOf(1);
        BigInteger y = BigInteger.valueOf(2);
        BigInteger z = BigInteger.ZERO;
        for(int i = 1; i < n ; i ++) {
            z = x.multiply(y);
            x = z;
            y = y.add(BigInteger.valueOf(1));
        }
        return x;
    }
}
提供一种新思路
编辑于 2022-08-24 23:20:49 回复(0)