链接: https://www.nowcoder.net/acm/contest/75/E
来源:牛客网

时间限制:C/C++ 3秒,其他语言6秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

给定一个整数N(0≤N≤10000),求取N的阶乘

输入描述:

多个测试数据,每个测试数据输入一个数N

输出描述:

每组用一行输出N的阶乘

输入

1
2
3

输出

1
2
6
题解:
#include <stdio.h>
 
int main()
{
    int n;
    while(~scanf( "%d", &n ))
    {
    	int i, j, tmp, sum;
	    char num[50000] = { 1 };
	    for ( i=2; i<=n; i++ )
	        for ( j=0,tmp=0; j<50000; j++ )
	        {
	            sum = num[j]*i+tmp;
	            num[j] = sum%10;
	            tmp = sum/10;
	        }
	 
	    i = 49999;
	    while ( !num[i] )
	        i--;
	    for ( j=i; j>=0; j-- )
	        printf( "%d",num[j] );
	    putchar( '\n' );
    }
    return 0;
}