考研机试 24.N的阶乘

 

时间:2021/03/05

 

一.题目描述

输入一个正整数N,输出N的阶乘。

输入描述

正整数N(0<=N<=1000)

输出描述

 输入可能包括多组数据,对于每一组输入数据,输出N的阶乘

题目链接

https://www.nowcoder.com/practice/f54d8e6de61e4efb8cce3eebfd0e0daa?tpId=40&tqId=21355&rp=1&ru=%2Fta%2Fkaoyan&qru=%2Fta%2Fkaoyan%2Fquestion-ranking&tab=answerKey

 

二.算法

题解

由于输入阶乘可能超过long所能表示的范围,所以我们这里使用BigInteger类来存储输入的阶乘值。

代码

import java.util.Scanner;
import java.math.BigInteger;

public class Main{
    
    public static void main(String[] args){
        
        Scanner in = new Scanner(System.in);
        
        while(in.hasNext()){
            //读取输入
            int n = in.nextInt();
            BigInteger count = new BigInteger("1");
            
            //计算阶乘
            for(int i = 2; i <= n; i++){
                count = count.multiply(new BigInteger("" + i));
            }
            
            //输出结果
            System.out.println(count);
        }
    }
}

 

上一篇:C++字符串相乘(不使用任何标准库的大数类型(比如 BigInteger)也不直接将输入转换为整数)


下一篇:考研机试 26.10进制 VS 2进制