[ SuperC @ 30.11.2006. 19:14 ] @
Code: #include <iostream.h> int f(int i) { if (i) return f(i/10)*(i%10); else return 1; } int main () { cout << f(123); return 0; } Eh, sada, Program pocinje da se izvrsava od int main (), zatim sta? Imam vrijednost f(123), koju bi normalno uvrstio gore u int f, ali ovdje je cout (character out) i nije postavljeno gore kao niz, nego kao cjelobrojna vrijednost. i ono sto me najvise buni je linija return f(i/10)*(i%10); --------------------------------------------------------- Kako je ovdje (u ovom zadatku) rjesenje 6?? Pitanje 2: ili evo bolje pitanje: u primjeru: Citat: void rek(int i) { cout << i%3; if (i<5) rek (i+1); cout << i%10; } int main () { rek (1); } mi je jasno da na pocetku i=1, te je 1%3=1 (prva cifra) onda je i+1=2 sto daje 2%3= 2 (druga cifra) onda je i=3 i sa 3%3 daje 0 (treca cifra) i ide na 4 4%3 sto da je 1 (cetvrta cifra) 4 je jos uvijek manje od 5 (i<5) i onda se i inkrementira na 5 i ide se na cout << i%10; sto daje 5%10=5 i do sada imam kao rjesenje 120125 ja bih normalno zavrsio ovdje program jer je sve izvrseno, no u rjesenje kaze da su ove cifre tacne, no da slijede jos 4321 Pitanje: zasto se sada vrijednost i=5 (trenutno) dekrementira do 1 (sto je bila pocetna vrijednost)? |