打印三角形、菱形、空心菱形
三角形、菱形、空心菱形打印玄学规律 【打印三角形、菱形、空心菱形】方法来源B站UP主放慵且行衣
一、直角三角形
文章图片
图一
如图所示,设其总行数为n,即n=3
设其对应的行数、列数为i、j
即:第一行有1个“”,表示为i=1,j=1;
第二行有2个“**”,表示为i=2,j=2;
第三行有3个“***”,表示为i=3,j=3。 如下图所示:
文章图片
所以综上所述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
文章图片
二、倒直角三角形
文章图片
图二
如图所示,设其总行数为n,即n=3
设其对应的行数、列数为i、j
即:第一行有3个“***”,表示为i=1,j=3;
第二行有2个“**”,表示为i=2,j=2;
第三行有3个“”,表示为i=3,j=1。 如下图所示:
文章图片
所以综上所述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
文章图片
三、等腰三角形
文章图片
图三
如图所示,设三角形的总行数为n,即n=3;
设其对应的行、列分别为i、j
即:第一行有1个※,表示为i=1,j=1;
第二行有3个※,表示为i=2,j=3;
第三行有5个※,表示为i=3,j=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
文章图片
四、倒等腰三角形
文章图片
图四
如图所示,设三角形的总行数为n,即n=3;
设其对应的行、列分别为i、j
即:第一行有5个※,表示为i=1,j=5;
第二行有3个※,表示为i=2,j=3;
第三行有1个※,表示为i=3,j=1。 如图所示:
文章图片
综上所述,寻找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
文章图片
五、菱形
文章图片
图五
菱形可由图三和图四拼接组成,所以打印出图五就是将图三和图四的实现代码结合在一起,修改一个数据即可,具体实现代码如下:
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();
}
六、空心菱形
文章图片
空心菱形是在实心菱形的基础上修改而成的,从图形上看,空心菱形每一行的第一列和最后一列是*,其他的都是空格,所以在实心菱形代码的打印*的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();
}
推荐阅读
- 一个人的碎碎念
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- Shell-Bash变量与运算符
- 清明,是追思、是传承、是感恩。
- 牛人进化+|牛人进化+ 按自己的意愿过一生
- 七老修复好敏感、角质层薄、红血丝
- 华为旁!大社区、地铁新盘,佳兆业城市广场五期!
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 螃蟹和这些食物同吃,轻则腹泻、重则中毒!要小心哦~
- 八、「料理风云」