mucachos alguien me puede ayudar. Necesito hacer una funcion recursiva que sume las componentes de un vector y la verdad que el tema me ta re costando. no me pueden dar ideas?
Muchas gracias, martin
Hola, si entendes la recursividad vasa ver que es algo facil; por razones de velocidad (y oxidacion en c) lo voy a hacer en un pseudocodigo:
funcion sumar_vector( a : vector ; cant_elementos : entero) retorna entero
{
si (cant_elementos = 0) entonces
retornar (0)
sino
retornar (vector[0] + sumar_vector(vector sin primer elemento , can_elementos - 1))
}
en c usar todos punteros para los vectores, entonces digamos que no duplicas en arreglo en ningun monento, sino que solo le pasas el puntero, entonces al momento de pasar el vector sin el primer elemento, solo pasa el puntero al segundo elemento, entendible, no?
Baii
gracias predi, siempre en todas vos :up:
che, no tenes algun tutorial o pagina de donde pueda sacar info para aprender el tema, las cosas que tengo no tocan el tema a fondo y no termino de entender como encarar un problema de caracteristica recursiva.
Hola, la primera vez que se toca la recursividad uno siempre esta medio perdido, ya que en si, la recursividad define las cosas en funcion de si misma; por ejemplo la funcion factorial es recursiva, veamos:
- sabemos que n! = n * (n-1) * (n-2) * (n-3) * ... * 1
esto es que n! = n * (n-1)!
por ende se define recursivamente y la funcion se llama a si misma, pero debe haber una condicion de corte (sino se llamaria infinitamente) y esta es que el parametro n sea mayor o igual que 1.
Luego factorial se define facilmente como:
function factorial(n)
{
if (n <= 1)
return 1; // <-- condicion de corte
else
return n * factorial(n-1); <-- calculo de solucion y llamada recursiva
}
Espero que esto te haya ayudado, ya que realmente no recuerdo ningun libro groso que la explique, pero dale gas, lee mucho, el dia que entiendas un caso luego los demas dejaran de tener misterio ;)
Baii.
predi tiene razon, cuando la entendes te sale al toque, y no hay vuelta atras :P
bueno gracias che, en unos dias que me desocupo me pongo a full ;D