1563 - 阶乘

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

请编写一个程序,从键盘上输入n(n 的范围是1~20),求n 的阶乘。

题目输入

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

题目输出

输出m行表示对应的n的阶乘。

输入/输出样例

输入格式

1
3

输出格式

6

C语言解答

#include<stdio.h>
int main()
{   
    long long i,n,b,m;
    while(scanf("%lld",&n)!=EOF)
	{ 
		while(n--)
		{
			scanf("%lld",&m);
			b=1;
			for(i=1;i<=m;i++)
				b*=i;
			printf("%lld\n",b);
		}
	}   
  return 0;
}


C++解答

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
    //freopen("test.in", "r", stdin);
    //freopen("test.out", "w", stdout);
    int n, t;
    cin >> t;
    while (t--) {
        long long sum=1;
        cin>>n;
        for(int i=1; i<=n; i++)
        {
            sum=sum*i;
        }
        cout<<sum<<endl;
    }
    return 0;
}

Java解答



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

public class Main {
	private static Scanner s = new Scanner(System.in) ;
    public static void main(String[] args) {
    	int n = s.nextInt() ;
    	for (int i = 0; i < n; i++) {
			int m = s.nextInt() ;
			System.out.println(f(m));
		}
	}
    
    public static BigInteger f(int m){
    	BigInteger one = new BigInteger("1") ;
    	for (int i = 1; i <= m; i++) {
			BigInteger b = new BigInteger(String.valueOf(i)) ;
			one = one.multiply(b) ;
		}
    	
    	return one ;
    }
}