Java基础 - 练习(三)打印空心菱形

Java基础练习

打印空心菱形,先上代码:

public static void diamond() {
    //控制行数
    for (int i = 1; i <= 4; i++) {
        //空格的个数
        for (int k = 1; k <= 4 - i; k++) {
            System.out.print(" ");
        }
        //控制星星个数的时候和行有关
        for (int j = 1; j <= 2 * i - 1; j++) {
            System.out.print("*");
        }
        System.out.println();
    }
    //控制行数
    for (int i = 3; i >= 1; i--) {
        //空格的个数
        for (int k = 1; k <= 4 - i; k++) {
            System.out.print(" ");
        }
        //控制星星个数的时候和行有关
        for (int j = 1; j <= 2 * i - 1; j++) {
            System.out.print("*");
        }
        System.out.println();
    }
}

思路:

  1. 打印菱形可以将菱形看作两个等腰三角形,第一个正着放,第二个倒着放,两个等腰三角形共用同一条底边
  2. 先打印第一个正着放的等腰三角形,设置4行,使用for循环嵌套
  3. 再打印倒着放的等腰三角形,因为底边共用,所以此处打印时比正放的时候少一行,打印3行
效果图

在这里插入图片描述

------------------------------------------------分割线------------------------------------------------

// 简便
public static void diamond2() {
    for (int i = -4; i <= 4; i++) {
        //打印空格
        for (int j = 1; j <= Math.abs(i); j++) {
            System.out.print(" ");
        }
        //打印具体的*号
        for (int j = 1; j <= 8 - (Math.abs(i) * 2 - 1); j++) {
            if (j == 1 || j == 8 - (Math.abs(i) * 2 - 1)) {
                System.out.print("*");
            } else {
                System.out.print(" ");
            }
        }
        System.out.println();
    }
}

效果图

在这里插入图片描述
思路类似,增加中间空白等腰三角形逻辑即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/724363.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【第20章】Vue实战篇之Vue Router(路由)

文章目录 前言一、使用Vue-Router1.安装2. 创建路由器实例3. 注册路由器插件4. 根组件 二、访问路由器1.理论2.使用3. 展示 三、嵌套路由(子路由)1. 准备文件2. 配置路由3. 菜单配置4. 展示 总结 前言 Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成&#xff0c;…

【机器学习】第2章 线性回归及最大熵模型

一、概念 1.回归就是用一条曲线对数据点进行拟合&#xff0c;该曲线称为最佳拟合曲线&#xff0c;这个拟合过程称为回归。 2.一个自变量 叫 一元线性回归&#xff0c;大于一个自变量 叫 多元线性回归。 &#xff08;1&#xff09;多元回归&#xff1a;两个x&#xff0c;一个…

BUU CODE REVIEW 11 代码审计之反序列化知识

打开靶场&#xff0c;得到的是一段代码。 通过分析上面代码可以构造下面代码&#xff0c;获取到序列化之后的obj。 <?php class BUU {public $correct "";public $input "";public function __destruct() {try {$this->correct base64_encode(u…

森林之下延迟高如何处理 森林之下联机卡顿的解决方法

森林之下是一款结合了农场模拟、恐怖生存的游戏&#xff0c;玩家需要管理一个被“闹鬼的树林”包围的农场&#xff0c;种植农作物&#xff0c;拯救、驯服、饲养动物&#xff0c;探索被诅咒的森林&#xff0c;并且收集物品来破除诅咒。这款游戏目前已经开放了demo&#xff0c;不…

基础模型服务商SiliconCloud,新注册用户赠送 14 元的配额(约 1 亿 token)

注册链接&#xff1a;https://cloud.siliconflow.cn?referrerclx1f2kue00005c599dx5u8dz 开源模型可以自己部署&#xff0c;对服务器的要求还是挺高&#xff0c;以及学习成本、部署过程成本都是比较高&#xff0c;硅基流动SiliconFlow提供了另一个方式&#xff0c;可以像使用…

Java new HashMap 指定容量,代码怎么写? 学习源码小记

之前针对 创建map 指定容量&#xff0c;写过一篇吐槽教学文章&#xff1a;HashMap 使用的时候指定容量&#xff1f;你真的用明白了吗&#xff1f;&#xff08;值得一阅&#xff09;_new hashmap<>(4);-CSDN博客 因为我们经常要通过代码做一些数据的分组&#xff0c;比如查…

Unity2D游戏制作入门 | 14( 之人物实装攻击判定 )

上期链接&#xff1a;Unity2D游戏制作入门 | 13 ( 之人物三段攻击 )-CSDN博客 上期我们聊到给人物添加三段攻击的动画&#xff0c;通过建立新的图层动画当我们按下攻击按键就会自动切换进攻击的动画&#xff0c;如果我们连续按下攻击键&#xff0c;我们还可以进行好几段的攻击…

Simulink代码生成: 基本数据类型

文章目录 1 引言2 Simulink中的基本数据类型3 数据类型实例3.1 浮点类型3.2 整数类型3.3 布尔类型 3 数据类型使用的注意点3.1 浮点数等于比较3.2 整形数溢出3.3 布尔类型的位域 4 关于定点数的说明5 总结 1 引言 正如C语言中为变量区分了不同的数据类型一样&#xff0c;Simul…

三个“消失” 折射债市新变化

资金分层现象逐步消失&#xff1b;低位的DR007利率已不常见&#xff1b;债市中一度盛行的“滚隔夜”也在逐渐减少。 当前&#xff0c;债券市场正在出现一系列显著变化&#xff1a;资金分层现象逐步消失&#xff1b;低位的DR007利率已不常见&#xff1b;债市中一度盛行的“滚隔…

天润融通:AI助手助力Klarna实现多语言客户服务革新

AI 助手可以在客户服务上发挥多大的作用&#xff1f;瑞典一家金融科技公司Klarna的尝试用数据说明了一切。 作为一家全球领先的“先买后付” (BNPL) 服务提供商&#xff0c;Klarna的业务覆盖全球45个国家&#xff0c;拥有1.5亿活跃用户&#xff0c;每天交易量达到200万笔。 为…

DuDuTalk:智能电子录音工牌在销售场景的应用价值

在快速变化的市场环境中&#xff0c;销售团队面临着日益激烈的竞争和不断变化的客户需求。为了提升销售效率、优化客户体验并加强团队协作&#xff0c;越来越多的企业开始采用智能电子录音工牌作为销售场景中的关键工具。本文将从多个方面探讨智能电子录音工牌在销售场景中的应…

为微信小程序项目添加eslint

背景 在使用vscode开发微信小程序的过程中&#xff0c;修改js的时候发现没有报错提示&#xff0c;让我很不习惯&#xff0c;所以想为微信小程序项目添加eslint配置 编码实战 为微信小程序配置ESLint可以遵循以下步骤&#xff1a; 安装ESLint及其相关插件 首先&#xff0c;…

VSG/VSA 矢量信号模拟/分析软件

_Ceyear思仪 _ VSG/VSA 矢量信号模拟/分析软件 苏州新利通仪器仪表 在现代无线通信中&#xff0c;IQ调制属于标准配置&#xff0c;经常应用于通信系统的信号调制和解调环节。IQ调制的应用简化了通信设备的硬件结构&#xff0c;同时提高了频谱资源的利用效率&#xff0c;提…

免费域名第二弹:手把手教你获取个性化免费域名并托管至Cloudflare

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 免费申请域名的方法 📒📝 注册账号📝 创建免费域名📝 将域名添加到 Cloudflare⚓️ 相关链接 ⚓️📖 介绍 📖 在如今的数字时代,拥有一个个性化的域名已经成为越来越多人的需求。无论是建立个人博客、项目展示,还…

07.MyBatis映射器:一对一关联查询

大家好&#xff0c;我是王有志&#xff0c;一个分享硬核 Java 技术的金融摸鱼侠&#xff0c;欢迎大家加入 Java 人自己的交流群“共同富裕的 Java 人”。 《MyBatis 映射器&#xff1a;实现简单的 SQL 语句》中&#xff0c;我们在 MyBatis 映射器的查询语句中使用 resultType 元…

面向对象复习(java)

文章目录 包在本地 cmd 编译包规则import(导包&#xff09; thisthis 访问实例方法this 访问构造方法 supersuper 访问父类构造器super访问父类方法super 访问父类属性 构造方法访问权限封装继承细节方法重写(覆盖)子父类同名变量问题关于子父类方法的继承问题 多态向上转型和向…

创新入门 | 病毒循环Viral Loop是什么?为何能实现指数增长

今天&#xff0c;很多高速增长的成功创业公司都在采用”病毒循环“的策略去快速传播、并扩大用户基础。究竟什么是“病毒循环”&#xff1f;初创公司的创始人为何需要重视这个策略&#xff1f;这篇文章中将会一一解答与病毒循环有关的各种问题。 一、什么是病毒循环&#xff08…

NV-Embed论文阅读笔记

这是NVIDIA的一篇论文&#xff0c;LLM通常使用的是GPT的decoder范式作为一个生成模型&#xff0c;文章探讨如何利用这样的decoder生成模型来实现BERT这样的encoder的功能&#xff0c;即提取有效的embedding。现有的方法提取embedding的方式无非是 1 mean pooling&#xff1b; 2…

算法竞赛数论杂题

menji 和 gcd 题目&#xff1a; 一开始以为是只有l不确定&#xff0c;r是确定的&#xff0c;这样的话我们可以枚举r的所有约数&#xff0c;然后对其每个约数x进行判断&#xff0c;判断是否满足题意&#xff0c;具体做法是先让l % x如果 0则该约数可行&#xff0c;如果不可行…