0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Shell腳本之打印一個正三角形

阿銘linux ? 來源:阿銘linux ? 作者:阿銘 ? 2022-10-24 09:13 ? 次閱讀

需求:打印一個正三角形,要求用戶輸入一個數(shù)字n,然后打印邊長為n個*字符的正三角形。

需求分析:

1.正三角形,即三條邊長度相同,三個角都為60°

2.腳本需要用戶交互,所以使用read -p實現(xiàn),關鍵代碼

read -p "Please input a number: "n

3. 正三角形,第一行為1個*,第二行為2個*,第三行為3個*,……以此類推,所以打印的*個數(shù)是遞增的。假設n為10,關鍵代碼

n=10
foriin`seq$n`
do
    for j in `seq $i`
    do
        echo -n "*"
    done
    echo
done

結(jié)果如下圖

87f1bc52-532b-11ed-a3b6-dac502259ad0.png

這段代碼里,用到了echo -n,這是為了不打印換行符,從而實現(xiàn)第2行里兩個*連在一起,3行里3個*連在一起,……

而每行最后面還需要換行,所以腳本里第8行代碼的echo就是為了打印換行符。

4.為了讓打印的三角形美觀,每個*后面需要帶一個空格,*和空格就需要兩個字符。假若如此的話,每行的字符都應該是2n個,只不過第一行除了一個*,其它字符都是空格,第二行除了兩個*外,其它字符都是空格,當然兩個*之間應該有一個空格。

5. 按上面的規(guī)律,第一行打印1對“*+空格”,第二行打印兩對“*+空格”,第三行打印三對“*+空格”,……

假設n為10,關鍵代碼如下:

n=10
for i in `seq $n`
do
    for j in `seq $i`
    do
        echo -n "* "
    done
    echo
done

相比較之前代碼,僅僅是在*后面加了個空格。效果如下圖:

880015f4-532b-11ed-a3b6-dac502259ad0.png

6.再來說一個關鍵問題,第一行在打印“*+空格”之前,應該先打印n-1個空格,然后再打印*,第二行打印n-2個空格,然后再打印*,第三行打印n-3個空格,然后打印*,……到了第n行也就是最后一行,打印0(n-n)個空格。

假設n為10,關鍵代碼如下:

n=10
foriin`seq$n`
do
forkin`seq$[$n-1]-1$i`
    do
        echo -n " "
    done


    for j in `seq $i`
    do
        echo -n "* "
    done
    echo
done

代碼第4行,seq $[$n-1]-1 $i是為了實現(xiàn)倒序隊列,第一次打印9個空格,第二次打印8個空格,第三次打印7個空格,……,第十次打印0個空格。

所以,最終腳本寫出來是這樣的:

#!/bin/bash
read -p "Please input a number: " n
for i in `seq $n`
do
    for k in `seq $[$n-1] -1 $i`
    do
        echo -n " "
    done


    for j in `seq $i`
    do
        echo -n "* "
    done
    echo
done

腳本運行結(jié)果如下:

88102a48-532b-11ed-a3b6-dac502259ad0.png





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Shell
    +關注

    關注

    1

    文章

    365

    瀏覽量

    23373

原文標題:Shell腳本習題--打印三角形

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    交流電三角形接法電流關系

    交流電三角形接法是種常見的電機接線方式,廣泛應用于電動機、發(fā)電機等設備中。在這種接線方式下,相交流電通過三個相互連接的線圈形成三角形,從
    的頭像 發(fā)表于 12-13 17:44 ?4548次閱讀

    三角形和星形電機參數(shù)怎么確定?

    請教三角形和星形電機怎么確定,通過測量 ------- 線電阻=2*相電阻 星形 線電阻=2/3*相電阻 三角形 這個說法對嗎
    發(fā)表于 03-07 06:57

    三角形網(wǎng)格球面參數(shù)化研究

    【作者】:鄒承明;李引;趙廣輝;鐘珞;【來源】:《武漢理工大學學報》2010年06期【摘要】:針對調(diào)和映射的思想提出了種新的零虧格的任意拓撲流形三角形網(wǎng)格的球面參數(shù)化方法。首先構(gòu)造
    發(fā)表于 04-24 09:55

    Shell或者Python寫個立體三角形

    本帖最后由 背后的太陽 于 2016-10-30 18:20 編輯 各位大神,幫忙用Shell或者Python寫個立體三角形(類似金字塔)拜謝。。。。
    發(fā)表于 10-30 18:18

    相負載三角形連接

    實驗  相負載三角形連接 、實驗目的:1.熟悉相負載作三角形連接的方法。2.
    發(fā)表于 09-24 14:09 ?3w次閱讀
    <b class='flag-5'>三</b>相負載<b class='flag-5'>三角形</b>連接

    三角形

    三角形目前的多分辨率算法(LOD)大多采用三角形作為最小的渲染圖元,綜合該算法的主要思想,使用種更加復雜的圖元:以“宏三角形”為最小
    發(fā)表于 03-02 11:17 ?1035次閱讀
    宏<b class='flag-5'>三角形</b>

    相負載的三角形連接方法

    相負載的三角形連接方法 將相負載Zuv、Zvw、Zwu接成三角形后與電源相連,如圖3.10所示,就構(gòu)成三角形連接的
    發(fā)表于 04-15 09:01 ?1.6w次閱讀
    <b class='flag-5'>三</b>相負載的<b class='flag-5'>三角形</b>連接方法

    C語言教程之輸出三角形

    C語言教程之輸出三角形,很好的GD32資料,快來學習吧。
    發(fā)表于 04-21 17:55 ?0次下載

    星形/三角形的變換法介紹

    星形-三角形變換法與三角形-星形變換法原則上是等效的。為了簡化計算,可以把星形連接的電路變換成等效三角形,也可以把三角形連接的電路變換為等效星形。即電路等效化簡后,對電路未進行變換的部
    的頭像 發(fā)表于 05-15 17:37 ?3.2w次閱讀
    星形/<b class='flag-5'>三角形</b>的變換法介紹

    三角形接法的作用

    三角形接法的作用 三角形接法是將各相電源或負載依次首尾相連,并將每個相連的點引出,作為相電的三個相線。因接線形狀似三角形,所以這種接法叫做
    發(fā)表于 04-03 14:23 ?2996次閱讀

    三角形繞組的兩種連線方式介紹

    三角形繞組中,有兩種常見的連線方式,分別是星型連接和三角形連接。
    的頭像 發(fā)表于 11-21 16:59 ?1909次閱讀
    <b class='flag-5'>三角形</b>繞組的兩種連線方式介紹

    變壓器“三角形接線”和“星形接線”接法詳解

    相電源的三個相依次連接在起,形成閉合的回路。在這種接線方式下,電源的相線與變壓器的三個線圈相連,其形狀類似于
    的頭像 發(fā)表于 02-18 18:17 ?1.4w次閱讀

    三角形連接和星形連接的基本概念和特點

    和星形連接的基本概念 三角形連接 三角形連接,又稱為Δ連接,是指將電機的三個繞組首尾相接,形成閉合的
    的頭像 發(fā)表于 07-17 10:35 ?2537次閱讀

    什么是相電機三角形接法?定義是什么?

    相電機三角形接法(Delta Connection)是相交流電動機的接線方式。在這種接法中,電機的三個繞組相互連接,形成
    的頭像 發(fā)表于 10-23 09:37 ?785次閱讀

    相電機三角形連接有哪些參數(shù)關系?

    相電機三角形連接(△連接)是種重要的電氣連接方式,在電力系統(tǒng)和電動機控制中廣泛應用。在三角形連接中,相電源或負載的每
    的頭像 發(fā)表于 10-23 09:48 ?716次閱讀