文档章节

在控制台用星号打印一个高M的等腰三角形与菱形

柠檬味的猫咪
 柠檬味的猫咪
发布于 2015/06/06 13:12
字数 526
阅读 16
收藏 0

等腰三角形

效果图:


分析:

分三种情况:

①第一行:只打空格,然后打一个*

②最后一行:全打*,不打空格

③中间:打左边空格,然后打一个*,再打空格,再打一个*

第一行:空格:总行数-1

最后一行:行号 * 2 + 1 个星号

中间:总行数-1-行号 个空格、1个星号, 行号*2-1 个空格,1个星号

public class BlankTri {
    public static void main(String[] args)
    {
        int M = 8;
        // i就代表了要打印i行
        for (int i = 0 ; i < M  ; i++ )
        {
            if (i == 0) // 正在打印第一行。
            {
                //  总行数-1 个空格、1个星号
                for(int j = 0 ; j < M - 1; j++)
                {
                    System.out.print(" ");
                }
                System.out.print("*");

            }
            else if (i == M - 1) // 正在打印最后一行。
            {
                // 最后一行要打印 行号 * 2 + 1 个星号。
                for(int j = 0 ; j < i * 2 + 1 ; j++)
                {
                    System.out.print("*");
                }

            }
            else{ // 中间的行数
                // 总行数-1-行号 个空格、1个星号, 行号*2-1 个空格,1个星号
                for(int j = 0 ; j < M - 1 - i ; j++)
                {
                    System.out.print(" ");
                }
                System.out.print("*");
                for(int j = 0 ; j < i * 2 - 1 ; j++)
                {
                    System.out.print(" ");
                }
                System.out.print("*");
            }
            // 每打印一行之后,应该换个行
            System.out.println();
        }

    }
}


菱形

效果:


菱形可以理解为:

分为上下的空心三角形,规律也相似

public class 空心菱形 {
    public static void main(String[] args) {
        int M = 9; // 假如上面三角形高度为7,那么菱形高度为13
        for (int i = 0; i < M * 2 - 1; i++) {
            // 第一行、最后一行,都是打印 M - 1个空格 ,1个星号。
            if (i == 0 || i == M * 2 - 2) // 第一行 或 最后一行
            {
                for (int j = 0; j < M - 1; j++) {
                    System.out.print(" ");
                }
                System.out.print("*");
            }
            // 如果是上面一半,
            else if (i < M) {
                // 总行数-1-行号 个空格、1个星号, 行号*2-1 个空格,1个星号
                for (int j = 0; j < M - 1 - i; j++) {
                    System.out.print(" ");
                }
                System.out.print("*");
                for (int j = 0; j < i * 2 - 1; j++) {
                    System.out.print(" ");
                }
                System.out.print("*");
            } else if (i >= M) {
                // 行号-总行数+1 个空格、1个星号, 4 * M - 5 - 2*i 个空格,1个星号
                for (int j = 0; j < i - M + 1; j++) {
                    System.out.print(" ");
                }
                System.out.print("*");

                for (int j = 0; j < 4 * M - 5 - 2 * i; j++) {
                    System.out.print(" ");
                }
                System.out.print("*");
            }
            System.out.println();
        }
    }
}


© 著作权归作者所有

共有 人打赏支持
柠檬味的猫咪
粉丝 1
博文 12
码字总数 2030
作品 0
广州
后端工程师
二重循环解题思路-颜群

本文通过一道习题,讲解做二重循环习题的思路: 题目:使用二重循环打印如下图形: 分析:首先要明确我们需要打印的种类有:字符串””,字符串” ”(空格)。比如第一行,先打印了4个空格” ...

蓝神100
2017/01/03
0
0
菜鸟请进,高手围观系列—二次循环小结(C Shorp学习笔记)

前言: a、小弟被告知,二次循环及更多的循环是处理数组的精髓所在,无比深入骨髓,强加理解 b、后续每周六更新,直至结束 1、循环位置识别及理解的经典案例 Console.WriteLine("入学典礼");...

Goo20120302
2012/03/04
0
0
打印菱形(Print Diamond/Lozenge)

→ ↓   总结了一下关于打印菱形的思路。   通常是从循环变量之间的映射关系入手,推导出相应的公式。这种思路的源点,往往会将坐标轴的原点放在左上方,也就是在[2N + 1]的矩形内打印出...

xumaojun
03/24
0
0
shell脚本常见面试题

1、打印九九乘法表方法一 方法二: 方法三:awk写法 2、国际象棋棋盘 3、打印等腰三角形 4、打印下图 5、打印下图 6、每隔30秒监控httpd服务是否启动,如果没启动就启动httpd服务 让脚本在后...

51tanxiaojun
2017/12/20
0
0
最全面的java多线程用法解析用五分钟学会这招,以后绝对用得上!

之前看到一题,题目的要求是利用多线程的知识,写一个程序。实现在控制台循环打印“ * ”(星号),然后输入数字,打印对应个数的星号,再输入数字,打印的个数随之改变。如果是用while循环或...

JAVA大神
2017/11/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis中jdbcType和javaType的对应关系 

Mybatis中jdbcType和javaType的对应关系 1 JDBC Type Java Type 2 CHAR String 3 VARCHAR String 4 LONGVARCHAR String 5 NUMERIC java.math.BigDecimal 6 DECIMAL java.math.BigDecimal 7 ......

DemonsI
18分钟前
2
0
Python中字符串和datetime

遇到的问题: 今天在写一个爬虫时,需要将今天的数据和昨天、一周前的数据做比较。所以就需要一个方法可以方便的计算出指定日期的前几天的日期。比如10月3号,则一周前的日期是9月26号。 问题...

akane_oimo
20分钟前
1
0
企业级 SpringBoot 教程 (四)SpringBoot 整合JPA

JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA 的目标之一是制定一个可以由很多供应商实现的API,并且开发...

itcloud
21分钟前
1
0
白话SpringCloud | 第六章:Hystrix监控面板及数据聚合(Turbine)

前言 前面一章,我们讲解了如何整合Hystrix。而在实际情况下,使用了Hystrix的同时,还会对其进行实时的数据监控,反馈各类指标数据。今天我们就将讲解下Hystrix Dashboard和Turbine.其中Hys...

oKong
32分钟前
1
0
Java JDK 11:现在可以使用所有新功能

删除了CORBA,Java EE和JavaFX支持,但添加了十几个主要新功能 目录 哪里可以下载JDK 11 Java 11 JDK中的新功能 从Java JDK 11中删除了什么 Java Development Kit(JDK)11现已普遍可用,可供...

GuoMengyue
33分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部