Informatică, întrebare adresată de paulstefan81, 8 ani în urmă

Daca o problema trebuie rezolvata prin recursivitate, gen sa se returneze restul imparitii lui a^{b} al c , cum pot retine valoare initiala a lui a intr-o variablia sa o pot inmulti pe parcurs cu a, fara sa isi schimbe valoarea?


boiustef: Paul, mai concret .... pt. ce trebuie să înmulţeşti? pentru a afla valoarea puterii?

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

int a,b,c;

int rest(int a, int b, int c)

{

   if (b==0) return 1;

   else

       return (a*rest(a,b-1,c))%c;

}

int main()

{

   cout << "a="; cin >> a;

   cout << "b="; cin >> b;

   cout << "c="; cin >> c;

   cout << "restul= " << rest(a,b,c);

}

Explicație:

cred e ce doreşti...  nu îţi trebuie altă variabilă, deoarece la apelul

return (a*rest(a,b-1,c))%c;

a se înmulţeşte cu rezultatul de la a^(b-1) şi se află şi restul


paulstefan81: Mersi mult!
boiustef: cu plăcere, succese!
Alte întrebări interesante