e ÀÚ¿¬´ë¼öÀÇ ¹Ù´Ú eÀÇ °ªÀ» ´ÙÀÚ¸®¼ö·Î »êÃâÇÑ´Ù
void e(int *data, int keta);
data (Ãâ·Â) eÀÇ °ªÀÌ 10Áø 4ÀÚ¸®¼ö¾¿ µé¾î°£ Á¤¼öÀÇ ¹è¿ keta (ÀÔ·Â) ¼Ò¼öÁ¡ ÀÌÇÏÀÇ ÀÚ¸®¼öÀÇ ÁöÁ¤
¾øÀ½
#define LOG2_10 3.322 void e(int *data, int keta) { int i, j; unsigned k, k2, n, s; int len; int *dap; long x; len = (keta-1) / 4 + 2; for (dap = data, j = len; j--; ) *dap++ = 0; n = keta * LOG2_10 + 1; k = 1; k2 = 2; s = 0; j = -1; for (i = 1; s <= n; i++) { if (i >= k) { k = k2; k2 <<= 1; j++; } s += j; } *data = 1; while (--i) { x = 0; for (j = len, dap = data; j--; ) { x = x * 10000 + *dap; *dap++ = x / i; x %= i; } (*data)++; } }