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! ÀÇ ÀÚ¸®¼ö´Â ½ºÅиµÀÇ ±Ù»ç½Ä º¸´Ù ,
¡¡¡¡¡¡
±×¸®°í ¿ä±¸µÈ´Ù.