X ^(n)sur turbo pascale

Bonjour,
j'ai un exercice en turbo pascal ,l'énoncé est le suivant :
Exercice 1 : Calcule Xn

• Ecrire 3 algorithmes. Chaque algorithme demande à l’utilisateur les valeurs de X et de n, ensuite, il affiche le résultat Xn
• Compare leurs Complexité.

or j'ai trouvé qu'un algorithme le voici :

Program exposant;
Uses crt ;
Function exposant ( i , j : integer ) : integer ;
Var i2 , a : integer ;
Begin
i2 := 1 ;
For a := 1 To j Do i2 := i2 * i ;
exposant := i2 ;
End ;
Var resultat, x, n : integer ;
BEGIN
Write ('Entrez un nombre : ') ;
Readln (x) ;
Write('Entrez un exposant : ') ;
Readln (n) ;
resultat := exposant ( x , n ) ;
Writeln ( resultat ) ;
Readln ;
END.

pouvez vous m'aider pour les deux autres?
Configuration: Windows XP
Firefox 3.0.10

3 réponses

  1. Modérateur
    Celui que tu as posté c'est le premier, puisqu'il est itératif (il utilise une boucle)

    Ensuite il faudrait que tu fasses un algorithme récursif (il s'appelle lui même)
    Et à chaque fois tu fais n calculs pour l'entrée n, c'est ce qu'on appelle la complexité linéaire

    Mais tu devrais pouvoir améliorer ton deuxième algorithme pour le faire en complexité logarithme (c'est à dire en O(log n) calculs)
    1
    1. Modérateur
      Ton premier algorithme est itératif de complexité linéaire
      Ton deuxième devrait être récursif de complexité linéaire
      Ton troisième devrait être récursif de complexité logarithmique
      0
      1. j'ai rien compris tu peux pas m'aider plus ! deja le premier que j'ai posté c'est lequel?
        0