Sto studiando ricorsione e pensato a fare qualche esempio. Mi mostra il codice che provo ad aggiungere i numeri dei 1 per la 5, cui il risultato sarebbe 15, Ma mi riporta indietro 16.
Cosa posso fare di sbagliato?
static void Main (string[] args) { Console.WriteLine(Sum(5)); Console.Read(); } static int Sum (int value) { if (value > 0) { return value + Sum(value-1); } else { return 1; } }
Una funzione Ricorsive è una funzione nel cui codice si chiama. Nel suo codice è possibile trovare il caso ricorsivo, che è dove la funzione effettua la chiamata a se stessa, E la caso di base, dove non fa questo tipo di chiamate.
Così posso vedere nel codice, il caso ricorsivo è quando valore è maggiore di 0, E la caso di base è quando valore vale la pena 0. Ma stai dando indietro 1, quando il valore vale la pena 0, che non è giusto.
La cosa giusta da fare sarebbe che il ritorno della caso di base Era 0.
Per favore, login o Registro per fare una domanda