问题是你开始用1星号(x = 1)而不是3来绘制沙漏的底部。

第二个问题是,沙漏的底部只有N-2线,不N-1所以循环应该从1开始,而不是0。这是因为有一个星号线在上半部分已经被绘制。

更正代码:

public static void main(String[] args) {

int N = StdIn.readInt();

int x = N*2-1;

for (int i = 0; i < N; i++) {

for (int j = i; j > 0; j--) {

StdOut.print(" ");

}

for (int k = 0; k < x; k++) {

StdOut.print("*");

}

x-=2;

StdOut.println();

}

x = 3; //

for (int i = 1; i < N; i++) { //

for (int j = i; j < N-1; j++) {

StdOut.print(" ");

}

for (int k = 0; k < x; k++) {

StdOut.print("*");

}

x += 2;

StdOut.println();

}

}

作为旁注,您可以通过进行以下观察来更短地重写此代码:

有x线绘制,所以我们可以循环从0到x包括(尊重对称性),并跳过中间线,以便不绘制它两次

对于每一行,都有要绘制的x列,它可以是空格或*。

对于每一个线,*绘制仅当当前列是min(i, x-i)和max(i, x-i)(如果我们在上部,i < x-i和如果我们在底部部分,i > x-i)。之间

码:

public static void main(String[] args) {

int N = 4;

int x = 2 * N - 1;

for (int i = 0; i <= x; i++) {

if (i == N) continue; // skip the middle-line for it not to be drawn twice

for (int j = 0; j < x; j++) {

System.out.print(j >= Math.min(i, x-i) && j < Math.max(i, x-i) ? "*" : " ");

}

System.out.println();

}

}样本输出:

*******

*****

***

*

***

*****

*******

java沙漏_Java - 沙漏相关推荐

  1. java 沙漏_Java – 沙漏

    我只是失踪了一点点.我想要的是: ******* ***** *** * *** ***** ******* 我得到了什么 ******* ***** *** * * *** ***** ****** ...

  2. 用java实现简单沙漏

    用java实现简单沙漏 public static void main(String[] args) throws Exception {System.out.println("请输入大于等 ...

  3. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  4. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  5. java编写打印沙漏_打印沙漏编程总结

    7-1 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***** *** * *** ***** 所谓" ...

  6. 普罗米修斯监控java项目_java学到什么程度可以出去实习?

    把基础的知识学完,然后再学个框架,比如常见的SSH,SSM之类的,自己能用这个框架做个简单的项目,就可以了 简单的来说就是把下方的视频教程学完就可以找工作了(需要完整的资料可以找up) Java零基础 ...

  7. python绘制图形沙漏_sandglass(沙漏)——一个让人解脱的python时间处理库

    2014年六一儿童节那天的时间戳是多少? 2014年六一儿童节那天是星期几? datetime对象转成字符串后面往往带小数点,即微秒,而我存到数据库是不需要微秒的,怎么搞? 从配置中读取.网络中传输. ...

  8. 用python输出沙漏_sandglass(沙漏)——一个让人解脱的python时间处理库

    2014年六一儿童节那天的时间戳是多少? 2014年六一儿童节那天是星期几? datetime对象转成字符串后面往往带小数点,即微秒,而我存到数据库是不需要微秒的,怎么搞? 从配置中读取.网络中传输. ...

  9. 基于M5StickC Plus的可定时电子沙漏电子沙漏(LCD+软SPI+Arduino/C++)

    目录 项目介绍 硬件介绍 开发环境搭建 硬件结构及说明 软件结构及说明 软SPI驱动类 LED矩阵操作类 矩阵沙的动态效果计算 电子沙漏顶层类 硬件定时器(及中断服务)与非阻塞延时函数 硬件定时器 非 ...

最新文章

  1. Linux那些事儿之我是Sysfs(4)举例一lddbus
  2. 3D几何图形的生成算法
  3. Android 如何将Canvas上绘制的内容保存成本地图片
  4. 又一起.NET程序挂死, 用 Windbg 抽丝剥茧式的真实案例分析
  5. 遗传算法求解带时间窗的VRP问题(python)
  6. 最长重复子字符串:123321||12321
  7. matlab2016 wavread,matlab 7.10里面的wavread函数不能打开.wav文件。我的wav文件是电脑自带的录音机录的...
  8. Unity微信Android端第三方登陆
  9. 微信小程序入门使用(一)
  10. 【转】专家:制造业将大批死亡 都怪马云
  11. Pytorch简单一览表
  12. 初识MongoDB(一) mongodb基本操作
  13. 野火MINI_STM32_CubeMX_SPI1_W25Q64 调试记录
  14. 2.1 內积与欧几里得空间
  15. Oracle 11g OCP考试总结
  16. 程序员锻炼腰部几个简单的方法
  17. IP数据报的检验(计算机网络)
  18. Sql Server 字符串、日期函数 收藏
  19. 把国外软件替换出去!Notepad--
  20. UG编程,简单六步让你学会三坐标编程

热门文章

  1. 金蝶k3单据编码规则_金蝶K3 Wise 用SQL生成单号(单据编号)及单据内码(单据ID)
  2. Zabbix导入mysql监控模板_Zabbix MySQL监控模板添加
  3. 七年java开发,在拿下阿里、腾讯、百度、美团的offer后,有感而发,总结如下
  4. Spark 内存迭代计算
  5. 微信开发实战(4)—URL、Token认证、java源码、免费新浪SAE部署
  6. php聚丙烯酰胺,聚丙烯酰胺(PAM)
  7. Linux磁盘与文件系统管理(闲看庭前花开花落,坐观漫天云卷云舒)
  8. hdu 1078 FatMouse Chees
  9. Python爬取大乐透
  10. 思科模拟器-vtp技术及相关配置