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)++;
}
}