これは私の試みです:
#!/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)
私はelseステートメントに問題があると思います。return: +: numeric argument required
14行目でエラーが出ます。
私が抱えているもう1つの問題は、スクリプトが数字を表示しても数字が表示されないことですecho $(fibonacci 0 2)
。その場合は1を返すので、1が表示されると思いました。これを達成する方法について、誰かが私にいくつかのヒントを教えてもらえますか?
あなたの答えのいくつかをチェックアウトした後、これは私の2回目の試みです.n番目のフィボナッチ数を1 + 1 + 1 + 1などの形式で表示することを除いて、正しく機能します。
#!/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
私の最後の試み:
#!/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
ありがとうございます。