文档章节

在控制台用星号打印一个高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

没有更多内容

加载失败,请刷新页面

加载更多

CentOS 安装Tomcat

Tomcat 介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 Java 程序写的网站用tomcat+jdk来运...

野雪球
10分钟前
0
0
OSChina 周四乱弹 —— 每天都迟到是种什么样的体验

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @开源中国首席机器人 :《Too Good At Goodbyes (Acoustic) - Sam Smith - 单曲》 《Too Good At Goodbyes (Acoustic) - Sam Smith - 单曲》 ...

小小编辑
15分钟前
32
4
jquery通过id显示隐藏

var $div3 = $('#div3'); 显示 $div3.show(); 隐藏 $div3.hide();

yan_liu
今天
3
0
《乱世佳人》读书笔记及相关感悟3900字

《乱世佳人》读书笔记及相关感悟3900字: 之前一直听「荔枝」,后来不知怎的转向了「喜马拉雅」,一听就是三年。上班的时候听房产,买房了以后听装修,兴之所至时听旅行,分手后听亲密关系,...

原创小博客
今天
3
0
大数据教程(9.6)map端join实现

上一篇文章讲了mapreduce配合实现join,本节博主将讲述在map端的join实现; 一、需求 实现两个“表”的join操作,其中一个表数据量小,一个表很大,这种场景在实际中非常常见,比如“订单日志...

em_aaron
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部