Recursion just means solving a problem by reducing it to a smaller instance of the same problem.
``Reducing'' just means calling a subroutine. ``Smaller problem'' means different things, but the basic idea is that we are making measurable progress to the final answer.
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);
}