´Ù¹èÀå Á¤¼ö¸¦ ¼ö¿­·Î º¯È¯ÇÑ´Ù


ÇÔ¼ö¸í
mpNum2Str  ´Ù¹èÀå Á¤¼ö¸¦ ¼ö¿­·Î º¯È¯ÇÑ´Ù
Çü½Ä
void mpNum2Str(char *str, int *num);
Àμö
str  (Ãâ·Â) ´ëÀÀÇÑ ¼ýÀÚ¿­
num  (ÀÔ·Â) ´Ù¹èÀå Á¤¼ö
ÇÔ¼öÄ¡
¾øÀ½
ÁÖÀÇ »çÇ×
´Ù¹èÀå Á¤¼öÀÇ ¹è¿­ÀÇ °¢ ¿ä¼Ò ai(i ´Â 1 ÀÌ»ó)´Â 1¾î¸¦ ³ªÅ¸³», 1¾î·Î ³ªÅ¸³¾ ¼ö ÀÖ´Â ÃÖ´ëÀÇ Á¤¼ö´Â 9999 ·Î ÇÑ´Ù. ¸»ÀÇ ±æÀÌ´Â a0 ÀÇ °ªÀ¸·Î ³ªÅ¸³½´Ù. Áï, ´Ù¹èÀå Á¤¼ö´Â
anKn-1+ an-1Kn-2+...+a2K+ a1
±×¸®°í Ç¥ÇöÇÑ´Ù. ´Ù¸¸, K=10000, n=a0.

¿ë·Ê(mpNum2Str-test.c )

ÇÁ·Î±×·¥(mpNum2Str.c )
#define N 10000

void mpNum2Str(char *str, int *num)
{
    int  i, j;
    char *ss;
    int  x;

    if (*num == 0) {
        *str++ = '0';
        *str = '\0';
        return;
    }

    ss = str - 1;
    for (i = *num; i > 0; i--) {
        x = *++num;
        for (j = 1; j < N; j *= 10) {
            *++ss = x % 10 + '0';
            x /= 10;
        }
    }
    while (*ss == '0') ss--;

    *(ss + 1) = '\0';    
    while (str < ss) {
        x = *str;
        *str++ = *ss;
        *ss-- = x;
    }
}
¼³¸í

°ü·Ã ÇÔ¼ö
´Ù¹èÀå Á¤¼öÀÇ °¡»ê, ´Ù¹èÀå Á¤¼öÀÇ °¨»ê, ´Ù¹èÀå Á¤¼öÀÇ °ö¼À, ´Ù¹èÀå Á¤¼öÀÇ Á¦»ê, ´Ù¹èÀå Á¤¼öÀÇ Æò¹æ±Ù, ´Ù¹èÀå Á¤¼öÀÇ ´ë¼Ò ºñ±³, ¼ö¿­À» ´Ù¹èÀå Á¤¼ö·Î º¯È¯ÇÏ´Â, long Á¤¼ö¸¦ ´Ù¹èÀå Á¤¼ö·Î º¯È¯ÇÏ´Â, ´Ù¹èÀå Á¤¼ö¸¦ long Á¤¼ö·Î º¯È¯ÇÑ´Ù