Recursive Fibonacci in Bash script

前端 未结 5 1350
名媛妹妹
名媛妹妹 2020-12-20 06:44

This is my attempt:

#!/bin/bash

function fibonacci(){

first=$1
second=$2

if (( first <= second ))
then
return 1

else 

return $(fibonacci $((first-1))         


        
5条回答
  •  有刺的猬
    2020-12-20 07:31

    As Wumpus said you need to produce output using for example echo. However you also need to fix the recursive invocation. The outermost operation would be an addition, that is you want:

    echo $(( a + b ))
    

    Both a and b are substitutions of fibonacci, so

    echo $(( $(fibonacci x) + $(fibonacci y) ))
    

    x and y are in turn arithmetic expressions, so each needs its own $(( )), giving:

    echo $(( $(fibonacci $((first-1)) ) + $(fibonacci $((second-2)) ) ))
    

    If you are confused by this, you should put the components into temporary variables and break down the expression into parts.

    As to the actual fibonacci, it's not clear why you are passing 2 arguments.

提交回复
热议问题