Linux脚本练习之script076-打印等腰三角形

script076

题目

注:题目来源于 SHELL19 打印等腰三角形

打印边长为5的等腰三角形。

你的脚本应该输出:

    *
   * *
  * * *
 * * * *
* * * * *

脚本

如果直接使用 echo 输出五行的话,那么意义不大。可以通过循环来进行输出,我们探求它们之间的规律,把原来的空格字符替换成井号字符,发型就变成了一个 5 行 9 列的矩阵。

####*####
###*#*###
##*#*#*##
#*#*#*#*#
*#*#*#*#*

我们可以把每一行当作三部分来输出,规律如下:

  • 第一部分
####
###
##
#

  • 第二部分
    *
   *#*
  *#*#*
 *#*#*#*
*#*#*#*#*
  • 第三部分
####
 ###
  ##
   #
    

看上面的图形就能发现每行的规律变化了,就能很轻易写出循环代码了。

#!/bin/bash

for (( i = 1; i <= 5; i++ )); do
	# 第一部分
    for (( j = 1; j <= 5-i; j++ )); do
        printf " "
    done
    # 第二部分
    for (( j = 1; j <= 2*${i}-1; j++ )); do
        if [ $[ ${j} % 2 ] -eq 0 ]; then
            printf " "
        else
            printf "*"
        fi
    done
    # 第三部分
    for (( j = 1; j <= 5-i; j++ )); do
        printf " "
    done
    printf "\n"
done
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值