Problem Description
Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N!
Input
One N in one line, process to the end of file.
Output
For each N, output N! in one line.
Sample Input
1 2 3
Sample Output
1 2 6
c代码实现:
#include<stdio.h> #include<string.h> int main () { int t,max,n,c,i,j,a[90001]; while (scanf("%d",&n)==1) { memset(a,0,sizeof(a)); a[0]=1;max=1; for(i=1;i<=n;i++) { c=0; for(j=0;j<max;j++) { a[j]=a[j]*i+c; c=a[j]/10000; a[j]=a[j]%10000; if(c&&max<=j+1) max++; } } printf("%d",a[max-1]); for(j=max-2;j>=0;j--) printf("%04d",a[j]); printf("\n"); } return 0; }
java代码实现:
import java.math.BigInteger; import java.util.Scanner; class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int n=sc.nextInt(); BigInteger p=BigInteger.ONE; for(int i=2;i<=n;i++){ p=p.multiply(BigInteger.valueOf(i)); } System.out.println(p); } } }
时间: 2024-10-30 03:53:35