- ÇÔ¼ö¸í
mpSub ´Ù¹èÀå Á¤¼ö³¢¸®ÀÇ °¨»ê
- Çü½Ä
void mpSub(int *ret, int *a, int *b);
- Àμö
ret (Ãâ·Â) ´Ù¹èÀå Á¤¼ö³¢¸®ÀÇ °¨»êÀÇ °á°ú(a - b)
a, b (ÀÔ·Â) ´Ù¹èÀå Á¤¼ö(a ´Â b º¸´Ù Å«°¡ µ¿ÀÏÇÏ´Ù)
- ÇÔ¼öÄ¡
¾øÀ½
- ÁÖÀÇ »çÇ×
- a ´Â ¹Ýµå½Ã b º¸´Ù Å«°¡ µ¿ÀÏÇÏ°í ¾ÊÀ¸¸é ¾È µÈ´Ù.
- ¹è¿ÀÇ °¢ ¿ä¼Ò ai(i ´Â 1 ÀÌ»ó)´Â 1¾î¸¦ ³ªÅ¸³»,
1¾î·Î ³ªÅ¸³¾ ¼ö ÀÖ´Â ÃÖ´ëÀÇ Á¤¼ö´Â 9999 ·Î ÇÑ´Ù. ¸»ÀÇ ±æÀÌ´Â a0
ÀÇ °ªÀ¸·Î ³ªÅ¸³½´Ù. Áï, ´Ù¹èÀå Á¤¼ö´Â
anKn-1+
an-1Kn-2+...+a2K+
a1
±×¸®°í Ç¥ÇöÇÑ´Ù. ´Ù¸¸, K=10000, n=a0.
- ¿ë·Ê(mpSub-test.c )
- ÇÁ·Î±×·¥(mpSub.c )
#define N 10000
void mpSub(int *ret, int *a, int *b)
{
int i;
int la, lb;
int *rr;
int x;
la = *a;
lb = *b;
rr = ret;
x = 0;
for (i = 1; i <= la; i++) {
x += *++a;
if (i <= lb) x -= *++b;
if (x >= 0) {
*++rr = x;
x = 0;
} else {
*++rr = x + N;
x = -1;
}
}
while (--i > 0)
if (*rr-- ! = 0) break;
*ret = i;
}
- ¼³¸í
- 10 Áø¼öÀÇ °è»ê°ú °°ÀÌ, ÇϾ´Ù »¬¼ÀÀ» ½ÇÇàÇÑ´Ù. À§ÀÇ ¸»
º¸´Ù ¡¸ºô¸®°í¡¹°¡ ÇÊ¿äÇÑ ¶§´Â, À§ÀÇ ¸»¿¡ 1À» ¿©ºÐÀ¸·Î ´ç±ä´Ù.
- °ü·Ã ÇÔ¼ö
-
´Ù¹èÀå Á¤¼öÀÇ °¡»ê,
´Ù¹èÀå Á¤¼öÀÇ °ö¼À,
´Ù¹èÀå Á¤¼öÀÇ Á¦»ê,
´Ù¹èÀå Á¤¼öÀÇ Æò¹æ±Ù,
´Ù¹èÀå Á¤¼öÀÇ ´ë¼Ò ºñ±³,
¼ö¿À» ´Ù¹èÀå Á¤¼ö·Î º¯È¯ÇÏ´Â,
´Ù¹èÀå Á¤¼ö¸¦ ¼ö¿·Î º¯È¯ÇÏ´Â,
long Á¤¼ö¸¦ ´Ù¹èÀå Á¤¼ö·Î º¯È¯ÇÏ´Â,
´Ù¹èÀå Á¤¼ö¸¦ long Á¤¼ö·Î º¯È¯ÇÑ´Ù