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;
}
#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);
}
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)?