用循环方式
用循环的方式
#! /bin/bash
#循环
first=1
second=1
last=1
if [ $1 -le 2 ];then
echo 1
fi
i=3
while [ $i -le $1 ]
do
let last=first+second
let first=second
let second=last
let i++
done
echo $last
用递归方式
#递归
function fib()
{
#这里$1指函数的参数 也就时下面将函数的参数传进来 这里接收
local temp=$1
if [ $temp -le 2 ];then
echo 1
return
fi
#这里用``因为要解释里面的内容
val1=`fib $(( temp-1 ))`
val2=`fib $(( temp-2 ))`
echo $((val1+val2))
}
read num
fib $num
用数组方式
#数组
arr[0]=1
arr[1]=1
i=1
read num
while [ $i -lt $num ]
do
let arr[$i+1]=arr[$i]+arr[$i-1]
let i++
done
#这里需要打印num-1的数字 因为我们在这个循环中加到了num的位置 但是数组从0开始 所以这里需要减一
echo ${arr[$num-1]}