[C] valori stampati a video
Dato il codice indicato qui sotto, riportare i valori che il programma produce sullo schermo.
Dato che l'argomento passato ad f2 è 6, gli if di f1 ed f2 non vengono mai eseguiti.
Viene eseguita la printf dell'if di f1, che stampa a video 6. Ma poi cosa succede?
Grazie
#include<stdio.h> int fn1 (int); int fn2 (int); int fn1 (int x){ if (x<2) return 1; else {printf ("%d",x); return (x + fn2 (x-2) ); } } int fn2 (int a){ if (a < 2) return 1; else return (a+ fn1 (a-1) ); } void main(){ int r=6; r=fn2(r); printf("%d"\n",r); }
Dato che l'argomento passato ad f2 è 6, gli if di f1 ed f2 non vengono mai eseguiti.
Viene eseguita la printf dell'if di f1, che stampa a video 6. Ma poi cosa succede?
Grazie
Risposte
Ciao!
In realtà le funzioni f2 e f2 si richiamano vicendevolmente, fino a quando una delle due riceve come ingresso un numero minore di 2.
Il risultato finale è la somma della serie 1 2 3 5 6 8 9 ... ( fino a r).
In realtà le funzioni f2 e f2 si richiamano vicendevolmente, fino a quando una delle due riceve come ingresso un numero minore di 2.
Il risultato finale è la somma della serie 1 2 3 5 6 8 9 ... ( fino a r).