Concurs: Broke This (6)

Scrieti o functie care:

- va avea 2 parametri

- – 1 parametru ->  un numar care trebuie ridicat la o putere

- – 2 – lea parametru -> un numar care reprezinta puterea la care trebuie ridicat primul  parametru.

- va returna -> primul parametru ridicat la puterea al doilea parametru

Nu conteaza limbajul in care se scrie functia, pricipalul sa fie cat mai rapida metoda.

PS. Se accepta orice tip de date care doriti sa il folositi (inclusiv int).

6 Responses to Concurs: Broke This (6)

  1. superman

    python:
    def putere(a,b):
    ____return a**b

  2. GuessGen


    double putere(int x, int n){
    if (n == 0)
    return 1;
    else
    return x*putere(x, n-1);
    }

  3. destul de interesanta varianta recursiva.

    eu am vrut sa propun o varianta care foloseste operatori binari, dar mi-am dat seama ca nu prea functioneaza :) .

    • superman

      nu e buna recursia… la numere mari o sa moara… :) e mai optim cu mult sa scrii fara… adica se primeste oleaca mai mult de scris dar mai optim :)

      • Telechi Nicolae

        Laso bre mai moale ! Inainte sa zici ceva ghindestete :) Cum poate sa moara chind is numere mai mari ?

        Am scris si o bucata de cod special pentru tine , verifica si ai sa vezi daca algoritmul tau iterativ merge mai rapid.

        #include

        long long pow(int a,int b){
        if(b==1) return a;
        else{
        long long x=pow(a,b/2);
        if(b%2) return x*x*a;
        else return x*x;
        }
        }

        int main(){
        int a,b;
        printf("INTRODU NUMARUL SI PUTEREA:\n");
        scanf("%d %d",&a,&b);
        printf("REZULTAT:%lld\n",pow(a,b));
        }

        Executal si vezi chiti pasi face ? 6 maximu si nu b(puterea la care e ridicat numarul) cum 100% este algoritmul tau iterativ …

        CONCLUZIE : Nu te impaci cu notiunea de recursie si incerci so ocolesti … desigur ca sunt algoritmi care nici nu are sens sa ii faci recursiv pentru ca intradevar consuma mult timp ex: FIBONACI! asta nu inseamna ca in toate cazurile varianta iterativa e mai buna!!!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>