ESERCIZIO: MOLTIPLICAZIONE
Invariante di ciclo: p = x * y + z
Trasformazione: p = x’ * y’ + z’
y’ = Q = y/B, x’ = x*B, z’ = z + x*R
int MulNatIt(int x, int y, int z){
return(y==0) ? z :
MulNatIt(x*2, y/2, z+x*(y%2));
}
Operazioni primitive: supponiamo di saper giàmoltiplicare, dividere e modulare per 2.
Diapositiva precedente
Diapositiva successiva
Torna alla prima diapositiva
Visualizza versione grafica