打印三角形、菱形、空心菱形

三角形、菱形、空心菱形打印玄学规律

方法来源B站UP主放慵且行衣

一、直角三角形

在这里插入图片描述
图一

如图所示,设其总行数为n,即n=3
设其对应的行数、列数为i、j
即:第一行有1个“”,表示为i=1,j=1;
第二行有2个“**”,表示为i=2,j=2;
第三行有3个“
***”,表示为i=3,j=3。 如下图所示:
打印三角形、菱形、空心菱形_第1张图片
所以综上所述i、j之间的规律为i=j,所以用for循环嵌套,实现代码如下:

for(int i=1;i<=3;i++){
			for(int j=1;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}

划重点:j<=i
打印三角形、菱形、空心菱形_第2张图片

二、倒直角三角形

在这里插入图片描述
图二

如图所示,设其总行数为n,即n=3
设其对应的行数、列数为i、j
即:第一行有3个“***”,表示为i=1,j=3;
第二行有2个“**”,表示为i=2,j=2;
第三行有3个“
”,表示为i=3,j=1。 如下图所示:
打印三角形、菱形、空心菱形_第3张图片
所以综上所述i、j之间的规律为j=n-i+1,又∵ n=3,∴ j=3-i+1
所以用for循环嵌套,实现代码如下:

for(int i=1;i<=3;i++){
			for(int j=1;j<=3-i+1;j++){
				System.out.print("*");
			}
			System.out.println();
		}

划重点:j<=3-i+1
打印三角形、菱形、空心菱形_第4张图片

三、等腰三角形

在这里插入图片描述
图三

如图所示,设三角形的总行数为n,即n=3;
设其对应的行、列分别为i、j
即:第一行有1个※,表示为i=1,j=1;
第二行有3个※,表示为i=2,j=3;
第三行有5个※,表示为i=3,j=5。 如图所示:
打印三角形、菱形、空心菱形_第5张图片
综上所述,寻找i和j的关系,可以表示为:j=2*i-1
而该图形前面带有空格,前面的空格可视为一个倒三角形(参照图二)结合而成。
所以用for循环嵌套,代码实现如下:

for(int i=1;i<=3;i++){
			for(int k=1;k<3-i+1;k++){
				System.out.print(" ");
			}			
			for(int j=1;j<=2*i-1;j++){
				System.out.print("*");
			}
			System.out.println();
		}

划重点:j<=2*i-1
打印三角形、菱形、空心菱形_第6张图片

四、倒等腰三角形

在这里插入图片描述
图四

如图所示,设三角形的总行数为n,即n=3;
设其对应的行、列分别为i、j
即:第一行有5个※,表示为i=1,j=5;
第二行有3个※,表示为i=2,j=3;
第三行有1个※,表示为i=3,j=1。 如图所示:
打印三角形、菱形、空心菱形_第7张图片
综上所述,寻找i和j的关系,可以表示为:j=(n-i)*2+1,又n=3,所以j=(3-i)*2+1
而该图形前面带有空格,前面的空格可视为一个倒三角形(参照图二)结合而成。
所以用for循环嵌套,代码实现如下:

for(int i=1;i<=3;i++){
			for(int k=2;k<=i;k++){
				System.out.print(" ");
			}
			for(int j=1;j<=(3-i)*2+1;j++){
				System.out.print("*");
			}
			System.out.println();
		}

划重点:j<=(3-i)2+1
打印三角形、菱形、空心菱形_第8张图片

五、菱形

打印三角形、菱形、空心菱形_第9张图片
图五

菱形可由图三和图四拼接组成,所以打印出图五就是将图三和图四的实现代码结合在一起,修改一个数据即可,具体实现代码如下:

		for(int i=1;i<=3;i++){
			for(int k=1;k<3-i+1;k++){
				System.out.print(" ");
			}			
			for(int j=1;j<=2*i-1;j++){
				System.out.print("*");
			}
			System.out.println();
		}
		for(int i=1;i<=2;i++){
			for(int k=1;k<=i;k++){
				System.out.print(" ");
			}
			for(int j=1;j<=(2-i)*2+1;j++){
				System.out.print("*");
			}
			System.out.println();
		}

六、空心菱形

打印三角形、菱形、空心菱形_第10张图片
空心菱形是在实心菱形的基础上修改而成的,从图形上看,空心菱形每一行的第一列和最后一列是*,其他的都是空格,所以在实心菱形代码的打印*的for循环中,添加一个if判断, 实现代码如下:

for(int i=1;i<=3;i++){
			for(int k=1;k<3-i+1;k++){
				System.out.print(" ");
			}			
			for(int j=1;j<=2*i-1;j++){
				if(j==1 || j==2*i-1){	//仅在开头和末尾打印*
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
				
			}
			System.out.println();
		}
		for(int i=1;i<=2;i++){
			for(int k=1;k<=i;k++){
				System.out.print(" ");
			}
			for(int j=1;j<=(2-i)*2+1;j++){
				if(j==1 || j==(2-i)*2+1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.println();
		}

你可能感兴趣的:(打印三角形、菱形、空心菱形)