[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).