for多重回圈
- 乘法口訣
- 二、直線
- 三、矩形
- 四、靠左直角三角形
- 五、靠右直角三角
- 六、靠左倒三角
- 七、等腰三角形
- 八、平行四邊形
- 九、直角梯形
- 十、等腰梯形
- 十一、菱形
乘法口訣
#!/bin/bash
for ((a=1;a<=9;a++)) 輸出第一位數
do
for ((b=1;b<=$a;b++)) 輸出第二位數,第二位數要小于等于第一位數
do
c=$[$a*$b]
echo -ne "$a*$b=$c\t"
done
echo ""
done
#!/bin/bash
for ((a=1;a<=9;a++))
do
for ((b=1;b<=a;b++))
do
echo -ne "$a*$b=$[$a*$b]\t"
done
echo ""
done
#!/bin/bash
a=1
while [ $a -le 9 ]
do
b=1
while [ $b -le $a ]
do
let sum=$a*$b
echo -ne "$a*$b=$sum\t"
let b++
done
let a++
echo ""
done

二、直線
#!/bin/bash
for ((a=1;a<=20;a++)) 輸出直線回圈,回圈20次,每次輸出一個*
do
echo -n "*" -n表示不換行,所以輸出為直線
done
echo "" ""表示換行

三、矩形
一直上面輸出的是直線,矩形即是輸出多條直線,然后組合就是一個矩形
所以在直線的for回圈外面再套一個回圈
#!/bin/bash
for ((b=1;b<=5;b++)) 矩形回圈(多次回圈直線)
do
for ((a=1;a<=20;a++)) 直線回圈(多次回圈*),不懂看上一條
do
echo -n "*" -n不換行
done
echo "" “”換行,不換行就是一條很長的直線,因為多條直線連在一起了
done

四、靠左直角三角形
#!/bin/bash
for ((a=1;a<=10;a++)) 輸出行數
do
for ((b=1;b<=a;b++)) 輸出直線,因為此處b<=a,所以每行的*數并不一樣,不再是一樣長的直線了,而是隨著a的值不斷增大的直線
do
echo -n "*"
done
echo ""
done

五、靠右直角三角
#!/bin./bash
for ((a=1;a<=10;a++)) 輸出行數
do
for ((i=10;i>=a;i--)) 輸出左側需要的空格,空格的數量也是根據i>=a來決定,隨著a的逐步增加而減少,如果實在不懂,可以帶兩個數進去檢測一下
do
echo -n " "
done
for ((b=1;b<=a;b++))
do
echo -n "*"
done
echo ""
done

六、靠左倒三角
#!/bin/bash
for ((a=1;a<=10;a++)) 輸出行數
do
for ((b=10;b>=a;b--)) 因為是倒三角,所以*的數量應該從多到少,所以是b>=a, 隨著a的增大直線中*的數量會變少,因為當不滿足b>=a這個條件時,*數會被截斷
do
echo -n "*"
done
echo ""
done

七、等腰三角形
方法一:數學演算法,直接輸出奇數個*
#!/bin/bash
for ((a=1;a<=10;a++))
do
for ((b=10;b>=a;b--))
do
echo -n " "
done
i=$[($a*2)-1]
for ((c=1;c<=i;c++))
do
echo -n "*"
done
echo ""
done
方法二:空格倒三角拼靠右直角三角再拼靠左直角三角
#!/bin/bash
for ((a=1;a<=10;a++))
do
for ((b=10;b>=a;b--))
do
echo -n " "
done
for ((c=1;c<=a;c++))
do
echo -n "*"
done
for ((d=2;d<=a;d++))
do
echo -n "*"
done
echo
done
方法三:
#!/bin/bash
read -p "獲取行號" a
for ((i=1;i<=a;i++))
do
for((k=$a-$i;k>0;k--))
do
echo -n ' '
done
for ((h=1;h<=$((2*$i-1));h++))
do
echo -n '*'
done
echo''
done

八、平行四邊形
#!/ban/bash
for ((a=1;a<=10;a++)) 輸出行數,多行長度相同的直線按照斜三角形排列方式就變成了平行四邊形
do
for ((b=10;b>=a;b--)) 輸出空三角形
do
echo -n " "
done
for ((c=1;c<=15;c++)) 輸出直線
do
echo -n "*"
done
echo
done

九、直角梯形
方法一:在直角三角形的基礎上掐掉頭,即去掉前幾行,行數有第一層變數a決定,所以修改初始a的值
#!/bin./bash
for ((a=5;a<=10;a++)) 輸出行數,a=5掐去三角形的頭部
do
for ((i=10;i>=a;i--)) 輸出空倒三角形
do
echo -n " "
done
for ((b=1;b<=a;b++)) 輸出直線
do
echo -n "*"
done
echo ""
done

方法二:在這里是在空倒三角形的基礎上拼靠右直角三角形再拼矩形
#!/bin./bash
for ((a=1;a<=10;a++)) 輸出行數
do
for ((b=10;b>=a;b--)) 輸出空倒三角形
do
echo -n " "
done
for ((c=1;c<=a;c++)) 輸出靠右直角三角形
do
echo -n "*"
done
for ((d=1;d<=4;d++)) 輸出矩形
do
echo -n "*"
done
echo
done

方法三:在空倒三角形的基礎上輸出梯形
for ((a=1;a<=10;a++))
do
for ((b=10;b>=a;b--))
do
echo -n " "
done
for ((c=1;c<=$[$a+5];c++))
do
echo -n "*"
done
echo
done

相同的方法還可輸出另一直角梯形
for ((a=1;a<=10;a++))
do
for ((c=1;c<=$[$a+5];c++))
do
echo -n "*"
done
echo
done

十、等腰梯形
方法一:在等腰三角形的基礎上掐掉頭
#!/bin/bash
for ((a=5;a<=10;a++)) 輸出行數,a=5掐掉頭
do
for ((b=10;b>=a;b--)) 輸出空倒三角行
do
echo -n " "
done
i=$[$a*2-1]
for ((c=1;c<=i;c++)) 輸出直線形成等腰三角形
do
echo -n "*"
done
echo
done

方法二:空倒三角行+靠右直角三角形+矩形+靠左直角三角形
方法三:直角三角形+直角梯形
在此略
十一、菱形
在這里先輸出一個倒等腰三角形
#!/bin/bash
for ((a=1;a<=10;a++))
do
for ((b=1;b<=a;b++))
do
echo -n " "
done
i=$[$a*2-1]
for ((c=19;c>=$i;c--))
do
echo -n "*"
done
echo
done

方法一:計演算法(空倒三角+等腰三角)
#!/bin/bash
for ((a=1;a<=10;a++)) 輸出行數
do
for ((b=10;b>=a;b--)) 輸出空倒三角
do
echo -n " "
done
i=$[$a*2-1]
for ((c=1;c<=i;c++)) 輸出正等腰三角
do
echo -n "*"
done
echo
done
for ((p=2;p<=10;p++)) 輸出行數
do
for ((q=1;q<=p;q++)) 輸出空正三角
do
echo -n " "
done
h=$[$p*2-1]
for ((w=19;w>=$h;w--)) 輸出倒等角三角
do
echo -n "*"
done
echo
done
方法二:拼接法(空倒三角+直角三角)
#!/bin/bash
for ((a=1;a<=10;a++)) 輸出行數
do
for ((b=10;b>=a;b--)) 輸出空倒三角
do
echo -n " "
done
for ((c=1;c<=a;c++)) 輸出直角三角1
do
echo -n "*"
done
for ((d=2;d<=a;d++)) 輸出直角三角2
do
echo -n "*"
done
echo
done
for ((p=1;p<=10;p++))
do
for ((q=1;q<=p;q++)) 輸出空正三角
do
echo -n " "
done
for ((s=10;s>=p;s--)) 輸出直角三角3
do
echo -n "*"
done
for ((w=9;w>=p;w--)) 輸出直角三角4
do
echo -n "*"
done
echo
done

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/238517.html
標籤:其他
上一篇:大資料的概述
