Rekurzija - C jezik

1

Rekurzija - C jezik

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

Trebaju mi rekurzivne funckije iz C programskog jezika, ukapirao sam da one mogu da posluže kao petlja jer pozivaju same sebe i tako prave loop, ali imam nejasnoća u vezi sintakse i pomalo logike. Može li neko da postavi neki najprostiji primjer na kojem bih mogao da to shvatim i da dalje napredujem? Smile



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14828
  • Gde živiš: Niš

Evo recimo funkcije za izračunavanje faktorijela: faktorijel(int x) {     if(x == 0)         return 1;     else return x * faktorijel(x - 1); } Dakle, kod rekurzije su dve stvari bitne:
- uslov za izlazak iz rekurzije odnosno za završetak rekurzije, i on je maltene najbitna stvar, a i najčešći uzrok grešaka
- rekurzivni poziv funkcije - funkcija poziva samu sebe, ali gotovo obavezno sa izmenjenim parametrom



offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

Da ali imam problem sad sa glavnim programom, kako da ga uklopim sa funkcijom?

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14828
  • Gde živiš: Niš

Auh. Shocked

Glavni program je takođe funkcija. Dakle, imaš dve funkcije jednu pored druge. Very Happy Nakon toga samo u glavnoj funkciji pozoveš funkciju za faktorijel sa konkretnim parametrom i dobiješ rezultat.

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

Imaš li još neke primjere osim ovog faktorijela?

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14828
  • Gde živiš: Niš

Imam u glavi, da. Smile Ali ne bih da pišem sada sve to, pošto je, siguran sam, na netu sve to ispisano mali milion puta. Dakle, tastaturu u ruke i traži. Very Happy

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

Dobio sam zadatak da izračunam preko rekurzivne funkcije koliko unijeti broj ima cifara . Neutral Help me. Neutral Nemam orijentacije.

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14828
  • Gde živiš: Niš

Ovo bi bila neka rekurzivna formula: brojCifara(1234) = 1 + brojCifara(123). Počni odatle.

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

vasa.93 ::Ovo bi bila neka rekurzivna formula: brojCifara(1234) = 1 + brojCifara(123). Počni odatle.

Shocked Ne razumijem, kako da od zadatog broja prepoznam broj cifara, mislim da smo u školi dijelili zadati broj sa 100 ili sa 10 i to je bilo u glavnom programu, ali koja je sad fora sa rekurzivnom funkciom tu, ja ne znam.

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14828
  • Gde živiš: Niš

Samo brojiš jednu po jednu cifru. Dakle, broj cifara bilo kog broja jednak je zbiru jedinice i broja cifara tog istog broja bez poslednje cifre. Poslednju cifru broja "uklanjaš" tako što taj broj podeliš sa 10.

Ko je trenutno na forumu
 

Ukupno su 3391 korisnika na forumu :: 81 registrovanih, 4 sakrivenih i 3306 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 33 bren, 357magnum, AleksSE, armor, bladesu, bobomicek, Bojan198527, bojankrstc, Bombarder, Bosnjo, BraneS, bukefal, comi991, dane007, debeli, DeerHunter, Demi87, Denaya, Dimitrise93, djordjemiklusev, Dorcolac, Dzoni2412, Feller, FileFinder, Giskard, Grebostrek, havoc995, Jakonjveliki, jarovitt, Jeremiah, JK, kalens021, laki_bb, lcc, M74AB3, Marko Marković, maxim_von_burdengate, MB120mm, Medojed, mercedesamg, mikidragi, Mićko, mladen.zovko, museum, nenad81, nenomir, nixos, Njubara, nuke92, ObicanUser, Paklenica, Panter, ping15, precan, proka89, RajkoB, raptorsi, raster12, Ray1973, Robin, Sharpshooter, shiro, sifogiannis, Sonic, stefan95, Stevan2026, strn, tomigun, Troja, Trpe Grozni, vathra, vladaa012, VojaeZ, vukajlo71, vuksa72, wolf431, x011, x9, zdrebac, zt_RS, Žrnov