bash编程-斐波那契序列

显示全文:

使用bash实现斐波那契数列;

斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)。

bash脚本:

#!/bin/bash
#
declare -i i;
declare -i n;
declare -i pre;
declare -i current;

if [ $# == 1 ] ; then
     n=$1
else
     read -p "please input the n(number): " n
fi

until [ $n -gt 0 ]
do
   read -p  "please input a  valid number: " n 
done

echo "calculate f($n)..."

i=0;
current=0;
pre=0;

while [ "$i" != "$n" ]
do
    i=$(($i+1))
    if [ "$i" == 0 -o "$i" == 1 ] ;then
     pre=0
     current=1
    else
     current=$(($current+$pre));
     pre=$(($current-$pre))
    fi
echo -ne "$current\t";
done
echo -e "\nThe fibonacci is f($n)=$current"

执行结果:

fibnacci