这是我的尝试:
#!/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
。
我遇到的另一个问题是脚本不显示任何数字,即使我这样做了echo $(fibonacci 0 2)
。我认为它会显示 1,因为在这种情况下我会返回 1。有人可以给我一些关于如何做到这一点的提示吗?
在检查了你的一些答案之后,这是我的第二次尝试。它可以正常工作,只是它以 1+1+1+1 等形式显示第 n 个斐波那契数。有什么想法吗?
#!/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
谢谢伙计们。