mpSub 다배장 정수끼리의 감산
void mpSub(int *ret, int *a, int *b);
ret (출력) 다배장 정수끼리의 감산의 결과(a - b) a, b (입력) 다배장 정수(a 는 b 보다 큰가 동일하다)
없음
#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;
}