九九乘法表、直线、矩形、三角形之烧脑练习
1、九九乘法表
[root@localhost ~]# vim test2.sh
#!/bin/bash
for ((a=1;a<=9;a++)) #变量一:从1开始,到9结束,每次加一
do
for ((b=1;b<=$a;b++)) #变量二:从1开始,到9结束,每次加一,
do
c=$[$a*$b] #变量三:一、二积的变量
echo -ne "$a*$b=$c\t" #-ne 转义符,不换行输出,并将内容输出到屏幕上,\t即横向制表符
done
echo "" # "" 换行用
done
[root@localhost ~]# sh test2.sh
1*1=2
2*1=3 2*2=4
3*1=4 3*2=5 3*3=6
4*1=5 4*2=6 4*3=7 4*4=8
5*1=6 5*2=7 5*3=8 5*4=9 5*5=10
6*1=7 6*2=8 6*3=9 6*4=10 6*5=11 6*6=12
7*1=8 7*2=9 7*3=10 7*4=11 7*5=12 7*6=13 7*7=14
8*1=9 8*2=10 8*3=11 8*4=12 8*5=13 8*6=14 8*7=15 8*8=16
9*1=10 9*2=11 9*3=12 9*4=13 9*5=14 9*6=15 9*7=16 9*8=17 9*9=81
2、直线
[root@localhost ~]# vim test3.sh
#!/bin/bash
for ((a=1;a<=10;a++))
do
echo -n "*"
done
echo ""
[root@localhost ~]# sh test3.sh
**********
3、矩形
[root@localhost ~]# vim test4.sh
#!/bin/bash
for ((b=1;b<=5;b++))
do
for ((a=1;a<=10;a++))
do
echo -n "*"
done
echo ""
done
[root@localhost ~]# sh test4.sh
**********
**********
**********
**********
**********
4、靠左直角三角形
[root@localhost ~]# vim test5.sh
#!/bin/bash
for ((a=1; a<=9; a++))
do
for ((b=1; b<=$a; b++))
do
echo -n "*"
done
echo ""
done
[root@localhost ~]# sh test5.sh
*
**
***
****
*****
******
*******
********
*********
5、靠左倒直角三角形
[root@localhost ~]# vim test6.sh
#!/bin/bash
for ((a=1; a<=9; a++))
do
for ((b=9; b>=a; b--))
do
echo -n "*"
done
echo ""
done
[root@localhost ~]# . test6.sh
*********
********
*******
******
*****
****
***
**
*
6、靠右直角三角形
[root@localhost ~]# vim test7.sh
#!/bin/bash
for ((a=1; a<=9; a++))
do
for ((b=9; b>=$a; b--))
do
echo -n " "
done
for (( c=1; c<=$a; c++))
do
echo -n "*"
done
echo ""
done
[root@localhost ~]# . test7.sh
*
**
***
****
*****
******
*******
********
*********
7、 等腰三角形
[root@localhost ~]# vim test8.sh
#!/bin/bash
for ((a=1; a<=9; a++))
do
for ((b=9; 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
[root@localhost ~]# . test8.sh
*
***
*****
*******
*********
***********
*************
***************
*****************
8、平行四边形
[root@localhost ~]# vim test9.sh
#!/bin/bash
for ((a=1; a<=9; a++))
do
#输出倒空三角
for ((b=9; b>=$a; b--))
do
echo -n " "
done
#输出直线
for (( c=1; c<=9; c++))
do
echo -n "*"
done
echo ""
done
[root@localhost ~]# . test9.sh
*********
*********
*********
*********
*********
*********
*********
*********
*********
9、直角梯形
[root@localhost ~]# vim test1.sh
#!/bin/bash
for ((a=1; a<=9; a++))
do
#输出倒空三角
for ((b=9; b>=$a; b--))
do
echo -n " "
done
#输出直线
for (( c=1; c<=9+$a; c++))
do
echo -n "*"
done
echo ""
done
[root@localhost ~]# . test1.sh
**********
***********
************
*************
**************
***************
****************
*****************
******************
10、等腰梯形
[root@localhost ~]# vim test2.sh
#!/bin/bash
for ((a=1; a<=9; a++))
do
#输出倒空三角
for ((b=9; b>=$a; b--))
do
echo -n " "
done
#输出直线
for (( c=1; c<=9+$a; c++))
do
echo -n "*"
done
for ((d=1;d<=$a; d++))
do
echo -n "*"
done
echo ""
done
[root@localhost ~]# . test2.sh
***********
*************
***************
*****************
*******************
*********************
***********************
*************************
***************************
11、菱形
在这里先输出一个倒等腰三角形
#!/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