文档章节

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

柠檬味的猫咪
 柠檬味的猫咪
发布于 2015/06/06 13:12
字数 526
阅读 16
收藏 0
点赞 0
评论 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

菜鸟请进,高手围观系列—二次循环小结(C Shorp学习笔记)

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

Goo20120302 ⋅ 2012/03/04 ⋅ 0

打印菱形(Print Diamond/Lozenge)

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

xumaojun ⋅ 03/24 ⋅ 0

shell脚本常见面试题

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

51tanxiaojun ⋅ 2017/12/20 ⋅ 0

最全面的java多线程用法解析用五分钟学会这招,以后绝对用得上!

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

JAVA大神 ⋅ 2017/11/24 ⋅ 0

Python中的if、for、while、break练习题

1.给定一个不超过五位的正整数,判断其有几位,依次打印出个位、十位、百位、千位、万位的数字。 i=int(input(':')) if i/1000>10: r=5 elif i/1000>1: r=4 elif i/100>1: r=3 elif i/10>1: ...

manbinn ⋅ 2017/09/17 ⋅ 0

kotlin入门(1)----变量

前言 kotlin语言以简洁著称,今天对kotlin语法做一些基本讲解 今天涉及内容有: 变量的声明和使用 变量类型推断与声明 变量取值范围 打印菱形(函数入门) 布尔运算 final变量声明 预热 由于我...

奔跑的佩恩 ⋅ 05/21 ⋅ 0

Python3开发随记(2)实例

<碎碎念> 今天在公司终于把jQuery搜索插件的功能写完了,已经能实现同步GET提交查询参数并正确显示视图,重构了三遍自己才觉得代码凑合能看,和高手还是有距离的,继续努力吧。 晚上继续看P...

hosealee ⋅ 2016/04/13 ⋅ 0

border属性的多方位应用和实现自适应三角形

属性是在实际的应用中使用频率比较高的一个属性,除了作为边框使用,利用border属性的一些特征以及表现方式,可以在实现一些比较常见的效果(如等高布局,上下固定内容滚动布局和绘制CSS图标...

深海鱼在掘金 ⋅ 2017/11/23 ⋅ 0

Python学习(十一)——matplotlib与可视化

导入matplotlib模块: 1、绘制线 给出x的序列及y与x的关系; 输出: plt.plot(x,y,’r-‘,linewidth=2)中:r表示red红色(另:g-green、b-blue、m-magenta等),-表示实线 (另:其他不同的符...

akadiao ⋅ 2017/08/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

聊聊spring cloud gateway的LoadBalancerClientFilter

序 本文主要研究一下spring cloud gateway的LoadBalancerClientFilter GatewayLoadBalancerClientAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springfram......

go4it ⋅ 18分钟前 ⋅ 0

详解:Nginx反代实现Kibana登录认证功能

Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制。毕竟X-Pack是商业版。 下面我将操作如何使用Nginx反向代理...

问题终结者 ⋅ 24分钟前 ⋅ 0

002、nginx配置虚拟主机

一、nginx配置虚拟主机可分为三种方式,分别为: 1、基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2、基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站...

北岩 ⋅ 27分钟前 ⋅ 0

shell脚本之死循环写法

最近在学习写shell脚本,在练习if while等流程控制时,突然它们的死循环写法是怎么样的?经过百度与亲测记录如下: for死循环 #! /bin/bashfor ((;;));do date sleep 1d...

hensemlee ⋅ 30分钟前 ⋅ 0

苹果的ARKit2.0有多可怕,看了就知道

序言 ARKit主要由三部分组成: 跟踪(Tracking) 跟踪是ARKit的核心组件之一,其提供了设备在物理世界中的位置与方向信息,并对物体进行跟踪,如人脸。 2.场景理解(Scene Understanding) 场...

_小迷糊 ⋅ 30分钟前 ⋅ 0

5.1 vim介绍 5.2 vim移动光标 5.3 ,5.4vim一般模式下移动光标,复制粘贴

vim命令 vim是vi的一个升级版;vim可以显示文字的颜色 安装vim这一个包vim-enhanced 如果不知道安装包,可以使用 命令下面命令来查看vim命令是那个包安装的。 [root@linux-128 ~]# yum prov...

Linux_老吴 ⋅ 34分钟前 ⋅ 0

vim一般模式

vim 是什么 vim是什么 ? 在之前接触Linux,编辑网卡配置文件的时候我们用过了vi ,vim简单说就是vi的升级版,它跟vi一样是Linux系统中的一个文本编辑工具。 如果系统中没有vim ,需要安装一...

李超小牛子 ⋅ 42分钟前 ⋅ 0

docker实战

构建企业级Docker虚拟化平台实战 重点剖析虚拟化和云计算概念; 分析Docker虚拟化的概念和原理; 从0开始实战Docker虚拟化平台; 基于Docker构建Nginx WEB服务器和CentOS虚拟机; 基于开源监...

寰宇01 ⋅ 51分钟前 ⋅ 0

vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、一般模式下复制粘贴剪切

VIM Vim 是 UNIX 文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff),语法高亮,全面的帮助系统,本地脚本(Vimscript),和便于选择的...

蛋黄Yolks ⋅ 今天 ⋅ 0

springboot+mockito测试controller层遇到的问题

使用MockitoJUnitRunner测试的一个例子,原来报错无法找到bean, 类似的异常如下:createBeanError..... 原因:是因为@Runwith使用了SpringRunner,应该修改为MockitoJUnitRunner 代码如下: ...

writeademo ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部