|
[ 簡単な説明 ]
単位n(|n|<100)だけデクリメントします。 |
/* ldec.c */
#include "longint.h"
/* decrement LINT */
void ldec(LINT *a, int n)
{
if(n == 0) return;
if(n <= -BASE || n >= BASE)
{
fprintf(stderr, "Error : illegal parameter input in ldec().\n");
return;
}
if(a->len == 0)
{
*a = lset(-n);
return;
}
if(a->sign == 0)
{
if(n > 0) aldec(a, n);
else alinc(a, -n);
}
else
{
if(n > 0) alinc(a, n);
else
{
a->sign = 0;
aldec(a, -n);
a->sign = (a->sign == 0) ? -1: 0;
}
}
return;
}
|