首页 > 试题广场 >

阶乘

[编程题]阶乘
  • 热度指数:8894 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
请编写一个程序,从键盘上输入n(n 的范围是1~20),求n 的阶乘。

输入描述:
输入第一行为样例数m,接下来m行每行一个整数n,n不超过20。


输出描述:
输出m行表示对应的n的阶乘。
示例1

输入

1
3

输出

6

备注:
提示:注意输出结果可能超32位整型。
Java 
import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int m = scanner.nextInt();
        for (int i = 0; i < m; i++) {
            int n = scanner.nextInt();
            BigInteger res = BigInteger.ONE;
            for (int j = 1; j <= n; j++) {
                res = res.multiply(new BigInteger(j+""));
            }
            System.out.println(res);
        }
    }
}


发表于 2020-03-20 09:12:59 回复(0)
    理解题目意思很重要!!!!!
题目意思是:输入两个数,第一个数是要计算多少个数的阶乘,第二个是算这个数的阶乘的数
举例:输入 1 3,输出一次:3!;输入2 3,先输出3!,然后再次输入一个数n,再输出n!

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int m = sc.nextInt();
        while(m>0){
            long n = sc.nextInt();
            long result = 1;
            for (int i = 1; i <= n; i++) {
                result *= i;
            }
            System.out.println(result);
            m--;
        }
    }
}

编辑于 2019-05-24 15:25:41 回复(0)
import java.util.Scanner;
public class Main {
 public static void main(String[] args) {
  Scanner in=new Scanner (System.in);
  int m=in.nextInt();
  int []num=new int[m];
  for(int i=0;i<m;i++) {
   num[i]=in.nextInt();
  }
  long ji=1;
  for(int i=0;i<m;i++) {
   for(int j=1;j<=num[i];j++) {
    ji*=j;
   }
   System.out.println(ji);
   ji=1;
  }
 }
}

发表于 2019-03-28 20:34:56 回复(0)

问题信息

上传者:小小
难度:
3条回答 4891浏览

热门推荐

通过挑战的用户

查看代码
阶乘