shell 整理(36)===写斐波那契数列

发布时间:2024-12-08 01:26

数据、图表要用阿拉伯数字,表格应有表头和列名,行、列需整齐对齐。 #生活技巧# #职场生存技巧# #公文格式规范#

©著作权归作者所有:来自51CTO博客作者大雪儿的原创作品,请联系作者获取转载授权,否则将追究法律责任

(一)写如下所示数列

[root@localhost ding1]# bash 5.sh 

2/1

3/2

5/3

8/5

13/8

21/13

34/21

55/34

89/55

144/89

233/144

shell代码如下:

#!/bin/bash >aa >bb echo 1 2 | xargs -n1 >aa for i in `seq 20` do a=`cat aa | sed -n ''$i'p'` b=`cat aa |tail -1` echo $(($a+$b)) >>aa c=`cat aa | sed -n ''$(($i+1))'p'` echo $c/$a >>bb done cat bb1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.

计算结果如下,用awk 计算

[root@localhost ding1]# bash 5.sh |awk -F '/' '{a+=$1/$2;print a}'1.

2

3.5

5.16667

6.76667

8.39167

10.0071

11.6261

13.2437

14.8619

16.4799

18.098

19.716

21.334

22.9521

24.5701

26.1881

27.8062

29.4242

31.0422

32.6603

[root@localhost ding1]# 

上面的代码是输出文本,略微有点复杂,我补充第二中方法:

shell 代码如下:

#!/bin/bash a=1 #定义一个变量a 和 b b=2 for i in `seq 20` do echo $b/$a #shell 解析的时候是从上往下一步步来的,所以顺序是非常重要的。 c=$((a+b)) a=$b 和 b=$c不能颠倒过来 a=$b b=$c done 第一次循环: 2/1 c=3 a=2 b=3 第二次循环: 3/2 c=5 a=3 b=5 第三次循环: 5/3 c=8 a=5 b=8 ........1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.

如果打印一个这样的数列是不是也会了

例如:

1

2

3

5

8

........

shell 代码如下:

#!/bin/bash a=1 b=2 echo 1 for i in `seq 20` do echo $b c=$((a+b)) a=$b b=$c done1.2.3.4.5.6.7.8.9.10.11.12.

输出如下:

[root@localhost ding1]# bash 6.sh

1

2

3

5

8

13

21

收藏 评论 举报

相关文章

网址:shell 整理(36)===写斐波那契数列 https://www.yuejiaxmz.com/news/view/407561

相关内容

关于斐波那契数列 组合错排问题和一些递推公式合集整理
shell整理(28)===找规律写shell
“找规律填数字”解题技巧
shell 脚本学习之一
打造高效的工作环境 – SHELL 篇
subprocess.call(cmd, shell=True)
shell 当前工作目录的绝对路径
论列斐伏尔节奏分析视域中的日常生活批判
用shell+crontab定时清理日志
100个日常实用脚本

随便看看