Lo hice de otra manera, sin if, sin bucles, en 1 sola linea. static void Main(string[] args) { int i = 0; int[] lista = {1,2,3,4,5}; Console.WriteLine(SumarArray(lista,i)); Console.ReadKey(); } static int SumarArray(int[] lista,int i) {return (i == lista.Length) ? 0 : lista[i] + SumarArray(lista,i+1);}
class Program { //Haz un metodo recursivo que permita sumar todos los elementos de un array(int[] array), que vendra pasada como parametro static void Main(string[] args) { int[] array1 = {1,2,3,4,5,6,7,8,9,10}; SumaDeArray(array1); Console.ReadLine(); } static int SumaDeArray(int[] array, int cero = 0, int suma = 0) { if (cero == array.Length) { Console.WriteLine(suma); } else { SumaDeArray(array, cero + 1, suma + array[cero--]); } return suma; } } es mi codigo que hice para solucionar el primer problema esta bien? algun consejo?
En "SumaDeArray" no estás devolviendo nada, por lo tanto puedes definir el método sin retorno (void) y quitar el return, funciona bien pero es innesario y te sale un cero de regalo en pantalla jeje. Por otra parte en el Main has puesto un ReadLine en vez de un ReadKey y en la llamada recursiva, al índice le puedes quitar el decremento (--) a cero, no está haciendo nada. Un saludo
muy muy bueno Felicidades y Muchas Gracias
¿Es posible la declaración de variables al principio del método? De forma ordenada
static void Main(string[] args)
{
int[] numeros = new int[5] {2,5,6,1,7};
Cuenta(ref numeros);
Console.ReadKey();
}
static void Cuenta (ref int[] numeros)
{
int suma = 0;
foreach(int componente in numeros)
{
suma = suma + componente;
}
Console.WriteLine($"la suma es {suma}");
}
Lo hice de otra manera, sin if, sin bucles, en 1 sola linea.
static void Main(string[] args)
{
int i = 0;
int[] lista = {1,2,3,4,5};
Console.WriteLine(SumarArray(lista,i));
Console.ReadKey();
}
static int SumarArray(int[] lista,int i)
{return (i == lista.Length) ? 0 : lista[i] + SumarArray(lista,i+1);}
class Program
{
//Haz un metodo recursivo que permita sumar todos los elementos de un array(int[] array), que vendra pasada como parametro
static void Main(string[] args)
{
int[] array1 = {1,2,3,4,5,6,7,8,9,10};
SumaDeArray(array1);
Console.ReadLine();
}
static int SumaDeArray(int[] array, int cero = 0, int suma = 0)
{
if (cero == array.Length)
{
Console.WriteLine(suma);
}
else
{
SumaDeArray(array, cero + 1, suma + array[cero--]);
}
return suma;
}
}
es mi codigo que hice para solucionar el primer problema esta bien? algun consejo?
Esta muy bueno gracias amigo te felicito
En "SumaDeArray" no estás devolviendo nada, por lo tanto puedes definir el método sin retorno (void) y quitar el return, funciona bien pero es innesario y te sale un cero de regalo en pantalla jeje. Por otra parte en el Main has puesto un ReadLine en vez de un ReadKey y en la llamada recursiva, al índice le puedes quitar el decremento (--) a cero, no está haciendo nada.
Un saludo