| quotient(n,d) | = | -quotient(n,-d) if d<0 |
| = | -quotient(-n,d) if n<0 | |
| = | 0 if n<d | |
| = | 1 + quotient(n-d,d) otherwise |
| Racket | C++ |
|---|---|
(define quotient (lambda (n d) (cond ((< d 0) (- (quotient n (- d)))) ((< n 0) (- (quotient (- n) d))) ((< n d) 0) (else (+ 1 (quotient (- n d) d)))))) |
int quotient(int n, int d) {
if ( d < 0 )
return -quotient(n, -d);
else if ( n < 0 )
return -quotient(-n, d);
else if ( n < d )
return 0;
else
return 1 + quotient(n-d, d);
}
|