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

Să se scrie o funcție numită putere care primește 3 numere naturale a , b , c și calculează restul împărțirii lui a b la c . Semnătură funcție Funcția trebuie să se numească putere. Funcția trebuie să primească 3 parametri de tip int și să returneze un int care să stocheze numărul cerut Restricții 1 ≤ a ≤ 100 2 ≤ c ≤ 1000 0 ≤ b ≤ 1 000 000 000 Exemplu putere(3, 6, 100) va returna 29. Cum să calculezi eficient și corect Dacă încerci să îl ridici pe a la puterea b prin înmulțiri repetate, vei vedea că programul tău va fi lent și vei primi limită de timp depășită când trimiți. Poți să calculezi a b mai eficient folosindu-te de următoarea proprietate: a b = a b / 2 ∗ a b / 2 în cazul în care b este par, altfel a b = a ∗ a b − 1 . Acest lucru este ușor de demonstrat dacă ne bazăm pe faptul că a b ∗ a c = a b + c . Atenție! Deoarece numerele cresc foarte mult atunci când le înmulțim, trebuie să ai grijă ca valoarea lor să poată fi memorată într-o variabilă de tip int. Pentru a face acest lucru poți să te bazezi pe faptul că a ∗ b și r a ∗ r b au același rest prin împărțirea la c , unde prin r a am notat restul lui a la împărțirea cu c și prin r b restul la împărțirea cu c al lui b .


boiustef: daca problema e de pe careva site... mai bine aratai asta....

Răspunsuri la întrebare

Răspuns de varunax424
0

Răspuns:

#include <iostream>

using namespace std;

int putere (int a, int b,int c)

{

   int nr=1,S;

S=a;

   while(b>nr)

   {

    S =S*a;

       nr++;

   }

   return S%c;

}


robyorban: as fi vrut eu sa fie asa de usor
boiustef: :)))
tudorcristianmoyadct: yeah
Alte întrebări interesante