杭电1042
代码如下,总是超时,百思无解,暂且放下,来日方长
#include<iostream>
#include<cstdio>
using namespace std;

const int Length = 40000;

int Multiple(int *Array, int ArrayLength, int m)
{
    int c = 0;
    for(int i = 1; i <= ArrayLength; i ++)
    {
        int t = Array[i] * m + c;
        Array[i] = t % 10;
        c = t / 10;
    }
    
    while(c)
    {
        Array[++ ArrayLength] = c % 10;
        c /= 10;
    };

    return ArrayLength;
}

void PrintArray(int *Array, int ArrayLength)
{
    for(int i = ArrayLength; i >= 1; i --)
        printf("%d", Array[i]);
    printf("\n");
}

int main()
{
    int a[Length];
    while(1)
    {  
        int N;
        scanf("%d", &N);
        a[0] = 0;
        a[1] = 1;
        int aLength = 1;
        for(int i = 1; i <= N; i ++)
        {
            aLength = Multiple(a, aLength, i);
        }
        PrintArray(a, aLength);
    }
    return 0;
}