shell写一个斐波那契数列
时间: 2024-03-28 17:22:35 浏览: 121
#!/bin/bash
# 获取斐波那契数列的长度
echo "请输入斐波那契数列的长度:"
read n
# 初始化数组
fib[0]=0
fib[1]=1
# 计算斐波那契数列
for (( i=2; i<$n; i++ ))
do
fib[$i]=$(( ${fib[$i-1]} + ${fib[$i-2]} ))
done
# 输出斐波那契数列
echo "斐波那契数列为:"
for (( i=0; i<$n; i++ ))
do
echo -n "${fib[$i]} "
done
echo ""
相关问题
用shell写一个斐波那契数列,输入是N,输出是它的第N项。N<50
好的,以下是一个使用Shell编写的斐波那契数列脚本,它可以输出斐波那契数列的第N项:
```bash
#!/bin/bash
echo "请输入一个小于50的正整数N:"
read N
if [ $N -lt 1 ] || [ $N -gt 49 ]; then
echo "输入的数字不符合要求!请重新输入。"
exit
fi
a=0
b=1
for ((i=0;i<N;i++))
do
fn=$((a+b))
a=$b
b=$fn
done
echo "斐波那契数列的第$N项是:$a"
```
脚本中使用了一个for循环来计算斐波那契数列的第N项。由于斐波那契数列的前两项都是1,因此我们将a和b的初值分别设为0和1。然后,我们依次计算第3项至第N项,每次计算后将a和b的值更新为后两项的值。最后,输出斐波那契数列的第N项。
注意,脚本还对输入的N进行了合法性检查,如果输入的数字不符合要求,则会提示用户重新输入。
写一个shell函数版的斐波那契数列
好的,下面是一个shell函数版的斐波那契数列:
```
fib(){
if [ $1 -le 2 ]
then
echo 1
else
let "prev1 = $(fib $(($1-1)))"
let "prev2 = $(fib $(($1-2)))"
echo $(($prev1+$prev2))
fi
}
# 调用 fib 函数来输出斐波那契数列的前 N 个数字
N=10
for ((i=1; i<=N; i++))
do
echo "$(fib $i)"
done
```
注意:这是一个Bash shell函数,可能不适用于其他shell。如果需要使用,请将代码复制到Bash脚本中运行。
阅读全文