the art of computer programming 中的多项式除法
第二卷4.6.1 Algorithm D 影印本 421页
下面是我按这个算法用C 写的.得到的商是对的, 但是余数不对, 谁能帮我看下错哪了?
p1是被除数, p2是除数, q是商, r是余数.我算的r值不对
typedef struct poly {
int deg;
double coeffs[MAX_DEG+1];
} Poly;
void polyDivide( const Poly *p1, const Poly *p2, Poly *q, Poly *r)
{
int k;
int j;
Poly p;
polyCopy(p1, &p);
q->deg = p1->deg - p2->deg;
for (k = q->deg, j = p2->deg + k - 1; k >= 0; k--, j--) {
q->coeffs[k] = p.coeffs[p2->deg+k] / p2->coeffs[p2->deg];
p.coeffs[j] = p.coeffs[j] - q->coeffs[k] * p2->coeffs[j-k];
p.deg--;
}
*r = p;
}