>Mi lahko kdo pomaga, da bi mi tole potegnilo?
Jaz bi stvar napisal nekako takole (glej spodaj). Pri cemer, bi lahko
namesto parametra x kar uposteval, da je to 3. Ampak
zakaj ne bi raje napisal malo bolj genericne kode.
Aja pri tvoji zadevi si se nekaj ukvarjal z a-jem. Prejsno vrednost dobis
iz prejsnega nivoja rekurzije.
Fora je v tem, da ti lahko zapises x^y kot (x ^ (y-1) ) * x
Pri cemer imas spet potenco, ki jo na isti nacin razbijes naprej - dokler
ne prides do ustavitvenega pogoja.
Ta je lahko takrat ko je y=1 .. vsako stevilo na 1 je samo stevilo - torej
x
ali pa pri y=0 ... vse na 0 je 1. Oboje dela isto, le da ima druga varianta
pac
en nivo rekurzije vec.
BTW: Dosti je ce napises samo unsigned - ni treba se int.
--
#include <stdio.h>
unsigned potenca(unsigned x, unsigned y){
return (y == 1)?(x):(potenca(x, y-1) * x);
}
int main(){
unsigned x;
printf("Enter the number to put the power on 3\n");
scanf("%d", &x);
printf("%u^3 is %u\n", x, potenca(x, 3));
printf("3^%u is %u\n", x, potenca(3, x));
return 0;
}