Tudnátok segíteni a rekurzív függvényhívásban? Esetleg kódokat vagy vaalami. Elméletben világos csak programba nemtudom össszefoglalni.
Írj egy rekurzív függvényt, amely paraméterként két egész pozitív számot kap: a tényezőt (a) és a
hatványkitevőt (n), eredményül pedig visszaadja a a
n hatvány értékét. A tényezőt és a kivető értékét a
felhasználótól kérjük be.
Tegyük fel hogy a függvényfejléced így néz ki:
int power(int a, int n)
A hatványozás maga lényegében abból áll, hogy az 'a' számot 'n-1' alkalommal megszorzod önmagával. (ugye azért n-1, mert pl n=1 esetében a^1 az az 'a' maga).
Tehát pl a=5 és n=4 esetében az eredmény 5*5*5*5 lesz. Ezt tudjuk úgy zárójelezni, hogy 5*(5*(5*(5))). Ez a power(5,4). Hogy nézne ki a power(5,3)? 5*(5*(5)). Ez pontosan megegyezik az előző példa első zárójelén belül levő értékkel. Tehát elmondható, hogy
power(5,4) = 5*(power(5,3)) = 5*(5*(power(5,2))) = 5*(5*(5*(power(5,1)))) = 5*(5*(5*(5))).
Látható innen, hogy a power(5,1) = 5, itt már nem végzünk szorzást. Itt lesz a rekurziónk 'megállási feltétele', ha n=1, akkor nem végzünk további szorzást, hanem csak visszaadjuk az 'a' értékét.
Általánosan tehát
power(a,1) = 1, illetve
power(a,n) = a*(power(a,n-1))
Ezek alapján össze kell tudnod rakni a programot.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!