factorial °è½Ân! ÀÇ °ªÀ» ´ÙÀÚ¸®¼ö·Î »êÃâÇÑ´Ù
int factorial(int *data, int n);
data (Ãâ·Â) n! ÀÇ °ªÀÌ 10Áø 4ÀÚ¸®¼ö¾¿ µé¾î°£ Á¤¼öÀÇ ¹è¿ n (ÀÔ·Â) °è½ÂnÀÇ °ª
¹è¿ data¿¡ °è»ê°ªÀÌ µé¾î¿Â ¿ä¼ÒÀÇ ¼ö(¹è¿ÀÇ ¼±µÎ·ÎºÎÅÍ)
int factorial(int *data, int n)
{
int i, j;
int last;
int *dap, *dap2;
int t;
long x;
*data = 1;
last = 0;
for (i = 1; i <= n; i++) {
t = 0;
for (j = 0, dap = data; j <= last; j++) {
x = *dap;
x = x * i + t;
*dap++ = x % 10000;
t = x / 10000;
}
if (t ! = 0) {
*dap = t;
last++;
}
}
for (dap = data, dap2 = data + last; dap < dap2; dap++, dap2--) {
t = *dap;
*dap = *dap2;
*dap2 = t;
}
return last + 1;
}
n! ÀÇ ÀÚ¸®¼ö´Â ½ºÅиµÀÇ ±Ù»ç½Ä º¸´Ù ,
¡¡¡¡¡¡
±×¸®°í ¿ä±¸µÈ´Ù.