guión recursive fibonacci linux bash
Este es mi intento:
#!/bin/bash
function fibonacci(){
first=$1
second=$2
if (( first <= second ))
then
return 1
else
return $(fibonacci $((first-1)) ) + $(fibonacci $((second-2)) )
fi
}
echo $(fibonacci 2 0)
Creo que estoy teniendo problemas con la declaración else. Me sale el errorreturn: +: numeric argument required
en la línea 14.
El otro problema que tengo es que la secuencia de comandos no muestra ningún número, incluso si lo hagoecho $(fibonacci 0 2)
. Pensé que mostraría un 1 ya que estoy devolviendo un 1 en ese caso. ¿Puede alguien darme un par de consejos sobre cómo lograr esto?
Después de comprobar algunas de sus respuestas, este es mi segundo intento. Funciona correctamente, excepto que muestra el número n de fibonacci en el formulario 1 + 1 + 1 + 1, etc. ¿Alguna idea de por qué?
#!/bin/bash
function fibonacci(){
first=$1
second=$2
if (( first <= second ))
then
echo 1
else
echo $(fibonacci $((first-1)) ) + $(fibonacci $((first-2)) )
fi
}
val=$(fibonacci 3 0)
echo $val
Mi último intento:
#!/bin/bash
function fibonacci(){
first=$1
if (( first <= 0 ))
then
echo 1
else
echo $(( $(fibonacci $((first-1)) ) + $(fibonacci $((first-2)) ) ))
fi
}
val=$(fibonacci 5)
echo $val
gracias tios