杨辉三角与sed小记

数据结构+算法

时间有限,加倍努力

杨辉三角:

在这里插入图片描述

33 
 34 #这是显示杨辉三角
 35 #经过测试只要num i j k这些数字变量参与+-*/% ++ --算术运算时都可以不用$ijk
 36 #$[a[0]+a[1]]  这样可以进行数字运算而不用写成$[${a[0]}+${a[1]}]的形式
 37 #若是数组是一维的,如a[i-1]这样的书写是可以的不必写a[$[i-1]]
 38 #显示数组单个元素:${a[i]}  
 39 #显示数组所有元素:${a[*/@]}
 40 #一维数组可以写成:a[i-1]
 41 #条件判断与输出时尽量加上$i符号
 42 
 43 #read -a num   这样可以读入一些数字填充到数组num中  a=arrary
 44 #数组中的元素个数:${#num[*/@]}
 45 #数组中的元素:num[0]表示第一个元素  num[n-1]表示第二个元素 ,记住数组下标是以0开始
 46 
 47 #二维数组
 48 #算术计算与一维一样:a[$i$k]=$[a[$[i-1]$[k-2]]+a[$[i-1]$k]
 49 #输出:a[$i$k]
 50 
 51 
 52 #读取一个数字,你所要想创建的高度:
 53 read -p "Please input a number: " num
 54 
 55 #for循环从1到最高,限制每行输出:
 56 for((i=1;i<=num;i++));
 57 do
 58 #这个for是显示数字前面的空行,直接可以用num-i,这个不是一次打印完,而是有i决定行,num-i决定打印多个空格
 59          for((j=1;j<=$[num-i];j++));
 60          do
 61 #这是输出空,\c前面有一个空格,不换行输出\c
 62                  echo -e " \c"
 63          done
 64 #这个是创建数字,思想就是第k行要创建2k-1个位置,其中偶数位置为空,奇数位置有数字显示,用i与k来控制每行的输出
 65                 for((k=1;k<=$[2*i-1];k++));
 66                 do
 67 #以前是根据i来判断前两行,先创建前两行上的数字。后来合并了为先创建每行的每一个与最后一个,用i与k来判断,每行开始是1,最后是2*i-1
 68 #把每行的行首与行尾数字确定为1
 69                         if [ $k -eq 1 -o $k -eq $[2*i-1] ];then
 70 #把每行的第一个与最后个赋值为1
 71                                 a[$i$k]=1
 72 #打印输出
 73                                 echo -e "${a[$i$k]}\c"
 74 #只有i=2才到这一步,且只能走完下面else下的if(因为当i=2时,k=1,2,3,而1与3是行首与行尾,只有k=2才下到这步且k%=2即2%2==0
 75 #故而最终i=3才会走完下面的循环
 76                         else     
  77 #控制偶数位置为空,奇数位置为数字,开始的时候控制到i=2才走到这步
 78                                 if [ $[k%2] -eq 0 ];then
 79 #偶数位置空
 80                                         echo -e " \c"
 81 #控制只有i=3才走到这儿,也就是说从第3行开始
 82                                 else
 83 #数学思想,此行i的奇数位置除了行首与行尾外,其值=对应上的层位置i-1,k-2加上i-1,k
 84 #其中的i-1是代表是i行的上一层
 85 #k-2代表同位置在上一行减1(上层比下层少1个),再向左减1
 86 #k代表同位置在上一行减1(上层比下层少1个),再向右加1
 87                                         a[$i$k]=$[a[$[i-1]$[k-2]]+a[$[i-1]$k]]
 88 #打印输出
 89                                         echo -e "${a[$i$k]}\c"
 90                                 fi
 91                         fi
 92 
 93                 done
 94 #i的一次循环一次结束换行
 95                 echo
 96 done                                  

sed小记:


在这里插入图片描述


  一个月有感,努力,努力,再努力

  

  珍惜所有吧!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值