Recursive

int RussianRec(int a, int b)
//  implements Russian Peasant Algorithm recursively
{
  if (a == 0) return 0;
  else if ( 1 == a % 2) 
    return(b+ RussianRec(a >> 1, b) << 1);
  else
    return(RussianRec(a >> 1, b) << 1);
}

Gives T(0)=0, T(a) = 1+T(a/2). By now, this is familiar.


next up previous
Next: The While Version Up: METHODS OF ANALYSIS Previous: Return to Russia