九九乘法表、直线、矩形、三角形之烧脑练习

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

猜你喜欢

转载自blog.csdn.net/weixin_51431591/article/details/111475732