1563 - 阶乘
时间限制 : 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 ; } }