22_生成斐波那契数列

1.斐波那契数列
#!/bin/bash

# 斐波那契数列后一个数字永远是前 2 个数字之和
# 0 1 1 2 3 5 8 13 21 34 55 89

arr=(0 1)

# 方法1
function fb1() {
    for i in $(seq 2 11); do
        arr[$i]=$(expr ${arr[-1]} + ${arr[-2]})
    done
    echo ${arr[@]}
}


# 方法2
function fb2() {
    for i in $(seq 100); do
        len=${#arr[@]}
        last1=$(($len - 1))
        last2=$(($len - 2))
        sum=$((${arr[$last1]} + ${arr[$last2]}))
        if [ $sum -eq $i ]; then
            arr+=($i)
        fi
    done

    echo ${arr[@]}
}
posted on 2023-10-19 23:51  鸟叔书  阅读(19)  评论(0)    收藏  举报