如何使用shell编程当输入月份,输出总的兔子数目的数列(使用两种方法)(斐波那契数列)
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为兔子数列,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
*已知实验数据,编程实现实验
使用shell程序编写:
方法1:
#! /bin/bash
read -p "请输入月数:" month
amount[0]=1
amount[1]=1
rmonth=$month-1
if [ $rmonth = 0 ] || [ $rmonth = 1 ]
then
echo "总对数为1" #排除前两个月都为1的情况
else
for ((i=1;i<rmonth;i++)) #for循环
do
amount[i]=`expr ${amount[i-1]} + ${amount[i-2]}` #F(n)=F(n-1)+F(n-2)
done
fi
echo "总对数为${amount[i-1]}"
方法2
#! /bin/bash
list=(1 1)
read -p "输入: " num
i=2 #从第二个月开始
while [ $i -lt $num ]
do
let list[$i]=list[$i-1]+list[$i-2]
let i=$i+1
done
echo ${list[*]}
运行结果
另外还可以使用写c语言编写,在centos中安装gcc进行编译;思考数组和循环的使用;此文档用于学习交流,有问题还望指出。