#include <stdio.h>
int main( ) {
int i, j, a[ 2048 ] , N= 200 ;
//初始化陣列內容
a[ 0 ] = 1 ;
for ( i= 1 ; i<= N ; i++ ) { //i 從 1 ~ 200 代表 1x2x3...x200
//從最低位數開始計算新的結果
for ( j= 0 ; j < sizeof ( a) / sizeof ( a[ 0 ] ) ; j++ ) {
a[ j] *= i;
}
//處理數字進位
for ( j= 0 ; j < sizeof ( a) / sizeof ( a[ 0 ] ) - 1 ; j++ ) {
a[ j+ 1 ] += a[ j] / 10 ;
a[ j] %= 10 ;
}
}
//準備列印出結果
for ( i= sizeof ( a) / sizeof ( a[ 0 ] ) - 1 ; i >= 0 ; i-- ) {
if ( a[ i] != 0 ) break ;
}
//印出計算完成的結果
for ( ; i>= 0 ; i-- ) {
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCBtYWluKCkgewogICAgaW50IGksaixhWzIwNDhdLE49MjAwOwogICAgLy/liJ3lp4vljJbpmaPliJflhaflrrkKICAgIG1lbXNldChhLDAsc2l6ZW9mKGEpKTsKICAgIGFbMF09MTsKICAgIGZvciAoaT0xIDsgaTw9TiA7IGkrKykgIHsgIC8vaSDlvp4gMSB+IDIwMCDku6PooaggMXgyeDMuLi54MjAwCiAgICAgICAgLy/lvp7mnIDkvY7kvY3mlbjplovlp4voqIjnrpfmlrDnmoTntZDmnpwKICAgICAgICBmb3IgKGo9MCA7IGogPCBzaXplb2YoYSkvc2l6ZW9mKGFbMF0pIDsgaisrKSB7CiAgICAgICAgICAgIGFbal0gKj0gaTsKICAgICAgICAgICAgfQogICAgICAgIC8v6JmV55CG5pW45a2X6YCy5L2NCiAgICAgICAgZm9yIChqPTAgOyBqIDwgc2l6ZW9mKGEpL3NpemVvZihhWzBdKS0xIDsgaisrKSB7CiAgICAgICAgICAgIGFbaisxXSArPSBhW2pdLzEwOwogICAgICAgICAgICBhW2pdICU9IDEwOwogICAgICAgIH0KICAgIH0KICAgIC8v5rqW5YKZ5YiX5Y2w5Ye657WQ5p6cCiAgICBmb3IgKGk9c2l6ZW9mKGEpL3NpemVvZihhWzBdKS0xIDsgaSA+PTAgOyBpLS0pIHsKICAgICAgICBpZiAoYVtpXSAhPSAwKSBicmVhazsKICAgIH0KICAgIC8v5Y2w5Ye66KiI566X5a6M5oiQ55qE57WQ5p6cCiAgICBmb3IgKCA7IGk+PTAgOyBpLS0pIHsKICAgICAgICBwcmludGYoIiVkIixhW2ldKTsKICAgICAgIAogICAgfSAKICAgIHN5c3RlbSgicGF1c2UiKTsgCn0K