利用for循环打印实心棱形和空心棱形

2023-05-16

一.要求:

    提示用户输入棱形的行数,比如输入5时,打印如下实心棱形和空心棱形(由于排版问题,可能显示会有变形):

   *

 ***

*****

 ***

   *


  *

 * *

*   *

 * *

  *


二.分析:

 A.图形是上下对称的

 B.每行先打印空格,再打印星号,后面的空格不用打印

 C.中间行不打印空格,其余行根据与中间的行距,依次增加打印空格的数量

 D.每行打印的星号数量为最大列宽减去此行打印空格数量的两倍


三.实现:


import java.util.Scanner;

public class loopDemo{

    public static void main(String [] args){

        Scanner sc = new Scanner(System.in);

        System.out.print("请输入需要打印的棱形行数:");//提示输入

        int num = sc.nextInt();    //读取输入

        int mid = num/2+1;  //计算中间行


        System.out.printf("%d行实心棱形如下:\n",num);   


        for(int i=1;i<=num;i++){

            int x = 0;                //用于记录每行开始打印的空格数,每行都需要先将打印的空格数x置零,所以不能放到循环外面


            /*   

            if(i <= mid){

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

                    System.out.printf(" ");

                    x=j;//记录行首打印的空格数,最后一次赋值不会执行,所以x=j,而不是x=j-1

                }

                for(int j=1;j<=num-2*x;j++) {

                    System.out.printf("*");

                }

            }

            if(i > mid) {

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

                    System.out.printf(" ")

                    ;x=j;

                }

                for(int j=1;j<=num-2*x;j++) {

                    System.out.printf("*");   

                }   

            }

            //上面的逻辑其实相同,可以采用下面的绝对值来进行简化


            */


            for(int j=1;j<=Math.abs(mid-i);j++) {

                System.out.printf(" ");//每行先打印空格

                x=j;//并记录每行行首打印的空格数

            }

            for(int j=1;j<=num-2*x;j++) {//每行*号数量为总的数量减去两端的空格数量

                System.out.printf("*");//每行打印* 号

            }           

            System.out.println();//每行行尾才打印换行符               

        }


        System.out.printf("%d行空心棱形如下:\n",num);


        for(int i=1;i<=num;i++){

            int x=0;

            for(int j=1;j<=Math.abs(mid-i);j++) {

                System.out.printf(" ");//每行先打印空格

                x=j;//并记录每行行首打印的空格数

            }

            for(int j=1;j<=num-2*x;j++) {//每行*号数量为总的数量减去两端的空格数量

                if(j == 1 || j == num-2*x) System.out.printf("*");//每行打印* 号

                else System.out.printf(" ");

            }           

            System.out.println();//每行行尾才打印换行符           

        }           

    }

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用for循环打印实心棱形和空心棱形 的相关文章

  • C语言截取字符串

    1 从左边截取指定长度的字符串 代码功能 xff1a 从字符串开头 xff0c 截取指定长度的字符 include lt stdio h gt include lt wiringPi h gt int main char arr 128 6
  • 【Android-3】Android中的任务栈(Task)

    一 Android任务栈 概述 xff1a Android中的任务栈其实就是Activity的集合 xff0c 在Android中退出程序的时候必须把任务栈中的所有Activity清除出栈 xff0c 此时才能安全的完全的退出程序 xff0
  • Boost 和 STL 相比有哪些优势和劣势?

    1 在设计原则上 xff0c STL和Boost大体统一 因为STL和Boost基本上都是标准委员会那批人在策划 审核和维护 xff0c 所以口味上是相对接近的 但是因为Boost并不在标准中 xff0c 或者说是下一代标准的试验场 xff
  • udp通信 c 语言,Windows程序设计 | 基于UDP的C/S通讯实现

    作者小序 今天翘课一天 xff0c 本打算一个早上写完网络编程实验报告就出去溜达 xff0c 结果从早上九点到这会没出过宿舍门 xff0c 宅到不能再宅了 xff0c 哎 xff0c 一首凉凉送给自己 分享一下干货吧 xff0c windo
  • Linux 下tcp编程例子

    服务器端server程序 编译命令 xff1a gcc Wall g o server server c lpthread include lt stdio h gt include lt string h gt include lt st
  • 微信开发者工具配置服务器信息,微信开发者中心如何配置

    微信开发者中心配置是怎么样的呢 xff0c 那么微信开发者中心又是如何配置的呢 下面是学习啦小编收集整理的微信开发者中心如何配置 xff0c 希望对大家有帮助 微信开发者中心配置的方法 工具 原料 一台电脑和一个微信公众号 需要再SEA上部
  • 【尖端干货】H.264编码下直播视频添加水印的优化

    2016年被称为 中国网络直播元年 xff0c 网络直播已成为网络文化领域重要的经营模式和文化市场的重要组成部分 而以 直播造人 事件为节点 xff0c 直播行业进入了严格规范化的时期 xff0c 鉴黄 版权保护越来越受到直播行业的关注 在
  • C++ 防止重定义

    防止重定义有2种方法 xff1a 第一种 xff1a ifndef MY HEAD H INCLUDED define MY HEAD H INCLUDED endif MY HEAD H INCLUDED 此种方案是一种很通用的方案 xf
  • 51单片机串口通讯c语言程序,如何使用51单片机实现串口通信

    描述 STC51单片机一般带有1个串口 xff0c 有的带有2个串口 xff0c 串口一般用于下载程序和串口通信 串口通信特别适合控制设备 xff0c 所以工控机的电脑上一般都带有串口 51单片机的串口引脚为P3 0引脚与P3 1引脚 xf
  • nautilus命令

    nautilus 是图形程式 效果是以当前用户打开图形界面 所以如果想以root打开图形界面 使用时记得先切为root xff0c sudo没有用的 转载于 https www cnblogs com wangshaowei p 90313
  • 如何在SV中使用结构体struct语法

    前言 测试下可综合的struct xff0c struct和interface的区别 xff1a 两者都可以是信号的组合 xff0c 但interface可以定义信号的不同方向 xff0c 而struct中的所有信号都是同向的 struct
  • http digest

    HTTP digest 摘要访问认证是一种协议规定的Web服务器用来同网页浏览器进行认证信息协商的方法 它在密码发出前 xff0c 先对其应用哈希函数 xff0c 这相对于HTTP基本认证发送明文而言 xff0c 更安全 从技术上讲 xff
  • 理解字节序

    1 计算机硬件有两种储存数据的方式 xff1a 大端字节序 xff08 big endian xff09 和小端字节序 xff08 little endian xff09 举例来说 xff0c 数值0x2211使用两个字节储存 xff1a
  • Solaris 10整合apache与php过程及出错处理

    Solaris 10 整合 apache 与 php 过程及出错处理 lt xml namespace prefix 61 o ns 61 34 urn schemas microsoft com office office 34 gt 作
  • 去百度API的百度地图准确叠加和坐标转换的解决方案研究

    文章版权由作者李晓晖和博客园共有 xff0c 若转载请于明显处标明出处 xff1a http www cnblogs com naaoveGIS 1 背景 目前项目上如果要使用百度地图 xff0c 得加载百度的开发包 xff0c 然后通过百
  • 7款纯CSS3实现的炫酷动画应用

    1 纯CSS3实现人物摇头动画 这次我们要来分享一款超级可爱的纯CSS3人物摇头动画 xff0c 初始化的时候人物的各个部位是利用CSS3动画效果拼接而成 xff0c 接下来就是人物听音乐的场景 xff0c 一边听音乐一边摇着脑袋 xff0
  • 快速将自己的应用程序做成安装包

    打包程序的方式多种多样 xff0c 比如大家常用的VS NSIS等等 xff0c 但对于一个简单的应用程序 xff0c 如果你不涉及复杂的安装设置 xff0c 那么压缩工具 xff0c 是个不错的选择 当然用压缩工具制作程序安装包已经不是什
  • 关于小程序websocket全套解决方案,Nginx代理wss

    需求对话 提问 我在本地web能够使用ws协议去链接websocket xff0c 但是小程序不能使用 回答 由于小程序使用的是SSL加密协议 xff0c 所以需要使用wss 这里wss与ws的关系就相当于https于http的关系 提问
  • 打印机主流的指令类型(ESC命令集+CPCL命令集+TSPL命令集)

    概述 打印指令 xff0c 又称打印控制命令 计算机通过打印控制语言 xff0c 以软件命令的方法来控制打印机操作 xff0c 解释执行打印数据 xff0c 获得打印结果的 对于打印机所实现的复杂功能而言 xff0c 打印控制语言是基础 它
  • Hive - truncate partition、drop partition 区别

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Hive 有两种方法删除指定parition的数据 xff1a truncate partition drop parition 功能 xff1a 两者都用于删除数据 xf

随机推荐

  • ca-bundle.crt文件,用于php发起外部https请求

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Bundle of CA Root Certificates Certificate data from Mozilla downloaded on Wed Aug 13
  • 执行truffle unbox react报错,出现Error: connect ECONNREFUSED 0.0.0.0:443问题的解决办法

    前提 xff1a 我是用的是MAC系统 xff0c 不知道使用windows系统是否也可以 react box 项目构建 localhost ReactDapp liyuechun truffle unbox react box Start
  • 如何合并PDF文件?教你几种超简单的方法

    如何合并PDF文件呢 xff1f 我们在工作中会遇到很多难以处理的文件 xff0c 比如PDF文件就是一种 xff0c 尤其是将多个PDF文件合并成一个PDF文件 xff0c xff0c 其实大多数人都不知道将其合并 xff0c 盲目的在网
  • not a valid identifier解决

    not a valid identifier不是有效的标识符 因为在 usr的 多加了一个空格 xff0c 导致JAVA Home 无法识别 转载于 https www cnblogs com wxd136 p 10332040 html
  • asp链接数据库[转]

    1 ASP连接Access数据库语句 Set Conn 61 Server CreateObject 34 ADODB Connection 34 Connstr 61 34 DBQ 61 34 43 server mappath 34 w
  • OpenGL纹理映射

    GLfloat xrot X 旋转量 GLfloat yrot Y 旋转量 GLfloat zrot Z 旋转量 GLuint texture 1 存储一个纹理 AUX RGBImageRec LoadBMP char Filename 载
  • 【转】设置Qt应用程序图标及应用程序名

    一直以来很纠结给qt应用程序添加图标问题 xff0c 在网上收过一次 xff0c 但是感觉不够完整 xff0c 现将自己的实现过程记录下 xff0c 以便以后查看 xff1a 通过网上的例子知道qt助手中有相关说明 xff1a Settin
  • studioone机架效果模板_贾爽的分享-贾爽:带你认识StudioOne机架自带的两个混响效果器!...

    作者姓名 xff1a 贾爽 xff0c 现居河南省南阳市 xff0c 音视频软硬件产品的意见领袖 xff0c 网络主播培训指导讲师 xff0c 爽哥KX驱动工具 制作者 xff0c 南阳标题网络技术有限公司创始人 xff0c 河南省流行音乐
  • HTTP认证用户名密码 php

    header 39 HTTP 1 1 401 Authorization Required 39 header 39 WWW Authenticate Basic realm 61 34 PHP Secured 34 39 用户名和口令列表
  • C++ 存储类

    C 43 43 存储类 存储类定义 C 43 43 程序中变量 函数的范围 xff08 可见性 xff09 和生命周期 这些说明符放置在它们所修饰的类型之前 下面列出 C 43 43 程序中可用的存储类 xff1a auto registe
  • 怎么在VS监视DataSet类型的数据

    旧版本 先监视DataSet xff0c 打开dataset dataset下面有一个tables Tables打开有一个非公共成员 xff0c 然后下面有一个List xff0c List中存储了每一张表的信息 下图所示的List下面的
  • Python网络爬虫5 - 爬取QQ空间相册

    自毕业后 xff0c 就再也没有用过QQ xff0c QQ空间里记录的是些并不精彩的青葱岁月 xff0c 但好歹也是份回忆 xff0c 近日想着学以致用 xff0c 用Python把QQ空间相册的所有照片爬取下来 xff0c 以作备份 分析
  • C++学习笔记 简单部分

    C 43 43 数据类型 使用变量来存储各种信息 xff0c 变量保留的是它所存储的值的内存位置 这意味着 xff0c 当创建一个变量时 xff0c 就会在内存中保留一些空间 这段内存空间可以用于存储各种数据类型 xff08 比如字符型 宽
  • springboot 2 Hikari 多数据源配置问题(dataSourceClassName or jdbcUrl is required)

    最近在项目中想试一下使用 Hikari 连接池 xff0c 以前用的是阿里的 Druid xff0c 框架是 Spring MVC xff0c xml配置文件方式注入的 Bean xff0c 现在换成 Spring Boot 之后 xff0
  • 完美解决 开机无法启动 提示0xc000000e 问题

    完美解决 开机无法启动 提示0xc000000e 问题 原文链接 xff1a http bbs ruanmei com thread 186874 1 1 html 摘要 xff1a 本文提供0xc000000e问题的解决方法和原理解释 x
  • 使用Jmeter输出错误响应结果到日志

    性能测试过程中 xff0c 我们经常需要知道高并发性能测试情况下 xff0c 系统报错 xff0c 返回的结果是什么 xff0c 帮助开发具体定位问题 一 操作步骤 xff1a 正确响应结果 我们可以自定义断言语句 xff0c 自动判断断言
  • 控制台报错 index:0,size:0

    源代码 xff1a service实现类 xff1a String select sql 61 34 select cguid case isrz when 1 then 39 PASS 39 when 0 then 39 FAIL 39
  • Ubuntu11.04上tftp服务的配置

    Ubuntu11 04 上tftp 服务的配置 2011 06 17 15 01 以前ubuntu 版本上的tftp 已经配置很多遍了 xff0c 详情可以参见 xff1a www mcuos com thread 646 1 2 html
  • 九套常规报表模型(转)

    九套常规报表模型 我们可以通过九大报表模型的组合 xff0c 快速完成大多数报表的设计 这九大模型分别为 xff1a 列表 分组 主从 嵌套 交叉 图形 套打 分栏 填报 本文将重点对这九大模型的特征及适用范围进行阐述 1 列表 列表是报表
  • 利用for循环打印实心棱形和空心棱形

    一 要求 xff1a 提示用户输入棱形的行数 xff0c 比如输入5时 xff0c 打印如下实心棱形和空心棱形 xff08 由于排版问题 xff0c 可能显示会有变形 xff09 xff1a 二 分析 xff1a A 图形是上下对称的 B