pomoc s rekurziou

Programovacie jazyky, rady, poradňa...
miko_15
Light Expert
Light Expert
Príspevky: 63
Registrovaný: 05 mar 2008, 17:12

pomoc s rekurziou

Príspevok od používateľa miko_15 »

Kód: Vybrať všetko

Uvazujme nasledovnú procedúru:
int f(int a, int b) {
   int i,c,max;
   printf ( "%d kg bryndze\n", b-a);
   if (a==b) return 0;
      max=-3;
   for (i=a;i<=b;i++) {
      c = f(a,i) + f(i,b);
   if (c>max) max = c;
   }
   return max;
}
 Kolkokrát sa vypíse slovo bryndze pri volaní f(3; 10)?
 Kolko rôznych riadkov sa vypíse pri volaní f(8; 2008)?
 Akú hodnotu vráti volanie f(9; 1984)?
nevedel by niekto pomoct aj s takym to tipom prikladov? viem ze tento sa zacykli pre tu rekurziu f(i,b)...ale nevedel by niekto dat nejaky tip ako riesit taketo ulohy?
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Príspevok od používateľa juho »

preco by sa to malo zacyklit koli f(i,b) sak ked nastane i==b tak skonci a vola sa naspat.
miko_15
Light Expert
Light Expert
Príspevky: 63
Registrovaný: 05 mar 2008, 17:12

Príspevok od používateľa miko_15 »

juho napísal:preco by sa to malo zacyklit koli f(i,b) sak ked nastane i==b tak skonci a vola sa naspat.
ale to f(i,b) bude napr. v prvom pripade stale volat f(3,10) a to sa bude opakovat a opakovat.
chmirko
Expert
Expert
Používateľov profilový obrázok
Príspevky: 182
Registrovaný: 05 sep 2008, 15:56
Kontaktovať používateľa:

Príspevok od používateľa chmirko »

taketo ulohy dost nemam rad, predpokladam ze to mas z dakych prijimaciek na skolu, najskor chcu aby si to robil na papier robi sa to tabulkou

napises si tabulku vsetkych premennych + pocet vypisani brindza
do prveho riadku si napises pociatocne hodnoty (teda s cim sa vola)
dalsi riadok porobis JEDEN krok a pomenis premenne ako treba a ak sa vypisalo slovo tak do stlpca pocet vypisani pricitas jedna a takto ides riadok po riadku dokym niesi na konci cyklu / papiera alebo totalne nezblbnes

toto spravis pre nizsie cisla a musis tam najst postupnost, obvykle z toho vyleze aritmeticka, niekedy geometricka a obcas taka odveci, toto musis odhalit a potom zistis ako to bude pre ake cisla

no a niektore tam maju tzv. druhu postuponost kedy od istych cisel sa zmeni



no ale ak mas moznost, tak to spusti a mas, co samozrejme nieje to co po tebe chcel autor ale mas vylmi richlo vysledok, a aby si sa netrapil s pocitanim tak si miesto printf(bryndza) pricituj do dakej premennej 1 a bude
Napísať odpoveď