Задача «Целая степень»

Возвести число в целую степень (используя минимальное число умножений).

double power(double x, int n)
{
    /* ... */
}

Подсказка: использовать двоичное представление числа n.