Estou estudando a recursão e pensei em fazer um exemplo. Eu mostro-lhe o código com o qual eu tento adicionar os números do 1 para o 5, cujo resultado seria 15, pero me devuelve 16.
¿Qué puedo estar haciendo mal?
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; } }
1 Respostas
Una función recursiva es una función en cuyo código se llama a sí misma. En su código puede encontrarse el caso recursivo, que es donde la función realiza la llamada a sí misma, e o caso base, donde no realiza ese tipo de llamadas.
Por lo que puedo ver en tu código, o caso recursivo es cuando value es mayor que 0, e o caso base es cuando value vale 0. Pero estás devolviendo 1, cuando value vale 0, cosa que no es correcta.
Lo correcto sería que el retornar do caso base fuese 0.
Por favor,, logar ou Registre-se para fazer uma pergunta