Título: ayuda.funcion recursiva Publicado por: jkaszr en 20 Abril 2017, 01:47 am tengo esta serie: 1, 2, 6, 42, 1806,y necesito hallar el valor qeu sigue, lo hize de esta forma, ahora necesito hacerlo con una funcion recursiva pero no se como.
Código
· Los códigos deben ir en etiquetas GeSHi >aquí las reglas del foro (http://foro.elhacker.net/reglas.htm) -Engel Lex Título: Re: ayuda.funcion recursiva Publicado por: Serapis en 21 Abril 2017, 01:08 am La recursividad consiste en una función que se llama a sí misma y que tiene determinadas premisas:
- La primera llamada siempre es desde fuera. - Debe tener un punto de detención, una condición que una vez cumplida finalice la recursión. - Para que sea útil (y no solo se reinvoque sin ton ni son), algunas variables deben estar disponibles entre llamadas y otras podrían ser temporales (no sobreviven al salir de la función). Si primero creamos una solución para la serie (fíjate que yo propongo otra solución distinta a la tuya (la que tu pones es más sencilla), solo con el propósito de que veas que a veces hay más de una solución): Usamos Array() como contenedor de la serie, y k como el contador de iteración. Lo primero es inicializar el primer valor de la serie: Código: Array(0)=1 Ahora para ser recursivo, lo que hace el bucle en cada ciclo, debe hacerse en cada llamada a la función, por tanto las variables que deben 'sobrevivir' entre llamadas son el valor (n) y k, de paso los metemos también en el array... fíjate que se podría ignorar 'n' como tal y operar siempre sólo con el valor dle array pasando donde convenga Array(k-1), etc... Código: Se hace la primera llamada: |