On Tuesday 27 February 2001 16:49, you wrote:
> Pozdravljeni!
>
> Zacenjam se uciti programiranja v C-ju in sem ze prisel do prvega problema,
> ki ga ne znam resiti. V tekstu C v 21 dneh se pojavi tale naloga:
> 11. Write a recursive function to take the value 3 to the power of another
> number. For example, if 4 is passed, the function will return 81.
>
> Meni je na to temo uspelo spacati nekaj podobnega temu (c source pripet v
> datoteki 3_potenca.c). Vendar sem ugotovil, da zdeva segfaultne pri 8
> vrstici p = potenca(x);

takole:

int potenca(int p){
        if( p == 1 ) return 3;
        else return 3*potenca(p-1);
}

tvoja verzija se odvije v neskoncnost.
Rekurzivne funkcije morajo imeti ustvitveni pogoj, vrednost s katero delajo 
pa mora enkrat priti do tega pogoja. Torej, vsakic, ko mnozis, moras
zmansati potenco za 1, mnozis pa 3, ne a.

lp,
Mitja


Reply via email to