Calculer la valeur de x ^ y en O(log n)

Question d'entrevue:

Calculer x ^ y en O(log n)

Il y a différentes réponses comme "l'Utilisation de l'Indien de la Puissance de l'algorithme" ou

double power(double x, int y) 
{
    if(y == 0) return 1;

    double d = power(x, y/2);

    if(y%2 == 0) return d*d;
    else return x*d*d;
}
  1. est-il une bonne réponse?
  2. est-il une meilleure façon d'écrire un code pour cette question?
Est-ce devoirs?
non, c'est une question d'entrevue, vous pouvez voir le tag 😉
le reste est redondant

OriginalL'auteur Elnaz | 2012-04-17