fbpx

Problema #1809 – PowerREC – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Prietenul nostru, Ionci, a învățat la scoală despre ridicarea la putere. Ajutați-l să calculeze abab, folosind o funcție recursivă.

Date de intrare

Programul citește de la tastatură numerele naturale a și b.

Date de ieșire

Programul va afișa pe ecran numărul P, reprezentând abab.

Restricții și precizări

  • 0 ≤ P ≤ 2.000.000.000;
  • a + b > 0;
  • se recomandă realizarea unui subprogram recursiv.

Exemplu

Intrare

5
4

Ieșire

625

Explicație

5 * 5 * 5 * 5 = 625.

#include <bits/stdc++.h>
using namespace std;

int a_la_b(int a, int b){
    if(b == 0)
        return 1;
    else{
        if(b % 2 == 0)
            return a_la_b(a, b/2) * a_la_b(a, b/2);
        else
            return a_la_b(a, b/2) * a_la_b(a, b/2) * a;
    }
}

int main(){

    int a, b;
    cin >> a >> b;
    cout << a_la_b(a, b);

    return 0;
}
Comentarii

S-ar putea sa iti placa