Hilfsmittel: schnelles Potenzieren

int power (int b, int e) {
  int p = 1;
  while (e > 0) { // inv:  b^e * p = b0 ^ e0
    if (odd (e)) { p = p * b; }
    b = b * b;
    e = e / 2; // abgerundet
  }
  return p;
}
  9          23     9
  81 => 26   11   234 => 14
 676 => 16    5   224 =>  4
 256 => 36    2     4   
1296 => 31    1   124 => 14



Johannes Waldmann 2007-06-04