N階層放進大數陣列裡

嗯,一開始腦筋有點轉不過來..囧,這種類型的最不會弄的了OTL


#include "stdafx.h"
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
    const int SIZE = 5; 
    int i, j, sum[SIZE], N = 6;

    for(i = 0; i < SIZE; i++)
        sum[i] = 0;
    sum[0] = 1;
    // 是倒過來放的,ex : 120 = a[0] = 0, a[1] =  2, a[2] = 1
    // 6!的時候 =>        a[0]   0
    //                   a[1] 12
    //                   a[2] 6
    //                  ----------
    //                        720
    for (i = 1; i <= N; i++)
    {
        for (j = 0; j < SIZE; j++)
            sum[j] *= i;
        // 用到 j + 1,所以要SIZE - 1
        for (j = 0; j < SIZE - 1; j++)
        {
            sum[j + 1] += sum[j] / 10;
            sum[j] %= 10;
        }
    }

    for (i = SIZE - 1; i >= 0; i--)
        if (sum[i] != 0) 
            break;

    for ( ;i >= 0; i--)
    {
        printf("%d", sum[i]);
    }
    printf("\n");
    system("pause");
    return 0;
} 

0 意見:

張貼留言