>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;
}



Reply via email to