Re[2]: 1000! и вывести дело на экран?
От: WolfHound  
Дата: 18.02.03 22:29
Оценка:
Здравствуйте, Spark, Вы писали:

Да вы батенька
#pragma pack(push, 1)
typedef unsigned int uint32;
typedef unsigned __int64 uint64;
struct ui64
{
    union
    {
        struct
        {
            uint32 lo;
            uint32 hi;
        };
        uint64 i64;
    };
};
#pragma pack(pop)
int _tmain(int argc, _TCHAR* argv[])
{
    uint32 arr[10000];
    memset(arr, 0, sizeof(arr));
    arr[0]=1;
    int maxi=0;
    ui64 x;
    for(uint32 n=2;n<=10000;n++)
    {
        int i=0;
        uint32 a=0;
        do
        {
            x.i64=arr[i];
            x.i64*=n;
            arr[i]=x.lo+a;
            a=x.hi;
            i++;
        }
        while(a||i<maxi);
        maxi=i;
    }
    x.i64=0;
    maxi--;
    do
    {
        printf("%X",arr[maxi]);
        maxi--;
    }
    while(maxi>=0);
    printf("%u\n", x.hi);
    return 0;
}

Вот только спать пора...лень в десятичном виде печатать...
... << RSDN@Home 1.0 beta 5 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.