Java语言打印空心菱形
打印空心菱形如果一开始觉得比较困难的话,那么不妨分成几个步骤走完成菱形的打印。
1.先打印一个直角三角形(都是由星星组成的)
代码如下:
import java.util.Scanner;//导入Scanner类所在的包
public class RightTriangle{
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);//创建一个新的Scanner类用来接受总层数totalLevel
System.out.println("请输入总层数totalLevel:");
int totalLevel = myScanner.nextInt();
for (int i = 1 ; i <= totalLevel ; i++ ) {//一共要打印的总层数
for (int j = 1 ; j <= 2 * i -1 ; j ++) {//每一层要打印的星星的个数(2*N-1)
System.out.print("*");
}
System.out.println();
}
}
}
编译运行,在DOS窗口下输入5,结果如下图所
2.先打印一个实心的三角形(就是空格和星星的组成)
代码如下:
import java.util.Scanner;
public class SolidTriangle{
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);//创建一个新的Scanner类用来接受总层数totalLevel
System.out.println("请输入总层数totalLevel:");
int totalLevel = myScanner.nextInt();
for (int i = 1 ; i <= totalLevel ; i++ ) {//一共要打印的总层数
for (int j = 1 ; j <= totalLevel - i ; j++ ) {//每一层要打印的空格数
System.out.print(" ");
}
for (int k = 1 ; k <= 2 * i -1 ; k ++) {//每一层要打印的星星的个数(2*N-1)
System.out.print("*");
}
System.out.println();
}
}
}
编译运行,在DOS窗口下输入5,结果如下图所示:
3.先打印一个空心的三角形
代码如下:
import java.util.Scanner;
public class HollowTriangle{
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);
System.out.print("请输入总层数:");
int totalLevel = myScanner.nextInt();
for (int i = 1 ; i <= totalLevel ; i++ ) {//一共要打印的层数
if (i == totalLevel) {
for (int m = 1 ; m <= 2 * i - 1 ; m++ ) {
System.out.print("*");
}
}else{
for (int j = 1 ; j <= totalLevel - i ; j++ ) {//每层要打印的第一批空格数
System.out.print(" ");
}
System.out.print("*");
for (int k = 1 ; k <= 2 * i - 3 ; k++ ) {//每层要打印的第二批的空格数
System.out.print(" ");
}
if (i != 1) {
System.out.print("*");
}
System.out.println();
}
}
}
}
编译运行,在DOS窗口下输入5,结果如下图所示:
4.先打印一个空心的菱形(由两个空心的三角形组成,因为菱形是对称的所以下面的那一部分的空心三角形要比上一部分的空心三角形的总层数减少一个,这个方能构成一个菱形。)
代码如下:
import java.util.Scanner;
public class HollowDiamond{
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);
System.out.print("请输入上层总层数:");
int totalLevel = myScanner.nextInt();
//打印菱形的上半部分
for (int i = 1 ; i <= totalLevel ; i++ ) {//上层所需要打印的总层数
for (int j = 1; j <= totalLevel - i ; j++) {//每层要打印的空格数(就是总层数减去所在的层数)
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++ ) {//每一行要输入的星星的数量(所打印的星星的总数是2*N-1)
if (k == 1 || k == 2*i - 1 ) {//第一个和最后一个打印星星,其余打印空格
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();//每一行结束后就进行换行的操作.
}
//打印菱形的下半部分
for (int m = 1 ; m <= totalLevel -1 ; m++) {//因为菱形是对称的所以下面的总层数是上层总层数减去一才能构成菱形
for (int n = 1; n <= m ; n ++ ) {
System.out.print(" ");
}
for (int p = 1; p <= 2 * (totalLevel - m) -1 ; p++) {//每一行要输入的星星的数量
if (p == 1 || p == 2 * (totalLevel - m) - 1) {//totalLevel- m就是方便的转换,比如说上层一共有五层,那么第六行和第四行的情况一样
System.out.print( "*");
}else{
System.out.print(" ");
}
}
System.out.println();//每一行结束后就进行换行的操作.
}
}
}
编译运行,在DOS窗口下输入5,结果如下图所示:
Java语言打印空心菱形的更多相关文章
- c语言打印空心菱形
***算法:把菱形的中心看成坐标的原点(,),由此可以知道,如果|x| + |y| <= n;则打印输出"*"号,否则打印输出" " int mai(){ ...
- Java打印空心菱形
使用Java打印空心菱形 public static void main(String[] args) { int n = 5; //这里输出菱形的上半部分 for (int i = 1; i < ...
- java中打印实心菱形以及空心菱形的方法
一.打印效果 二.实现代码汇总 为了方便初学者对代码的理解,建议熟练t1到t5为各种三角的打印,然后再进行菱形的打印实现. package circulationDemo; import java.u ...
- java 打印空心菱形的两种实现
第一种实现方式: //打印给定行数的空心菱形 public static void draw(int size){ if (size % 2 == 0) //如果是偶数行变为奇数 { size++; ...
- for循环打印空心菱形的新方法
相信大家在学习流程控制的循环结构时,一定都用for循环绘制过菱形和空心菱形吧,我记得我当时写的很麻烦,把一个菱形分为上下两部分,上面2重for循环,下面2重for循环,相信有很多的小伙伴都是这样做的吧 ...
- java语言 打印素数实例
//根据定义判断素数---循环n-1次,当n很大时循环n次 public static void main(String[] args) { // TODO Auto-generated ...
- java语言打印上三角和下三角,进一步得到九九乘法表
关于下面两种图形的打印问题 ***** 与 * **** ** *** *** ** **** * ***** 一:程序 1.先打印下三角 2.结果 3.后打印上三角 4.结果 二:知识点 1.f ...
- Java温故而知新-空心菱形
空心菱形 今天做题练手,题目是空心菱形,一开始没什么思路,去网上找了找,发现很难找到讲的通透的,自己现在独立做出来了,记录一下,以备后用. * * * * * * * * * * * * * * * ...
- 案例>>>用绝对值的方法打印出菱形
import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = ...
- Java星星打印三角形小结
1.直角三角形的打印
随机推荐
- 华为云MRS支持lakeformation能力,打造一站式湖仓,释放数据价值
摘要:对云端用户而言,业务价值发现是最重要的,华为MRS支持LakeFormation后,成功降低了数据应用的成本,帮助客户落地"存"与"算"的管理,加快推进了 ...
- ES6 01 简介
1 记录一个好的笔记 一个非常详细的笔记:https://es6.ruanyifeng.com/#docs/intro 2 简介 2.1 ECMAScript 和 JavaScript ECMAScr ...
- SQLSERVER 临时表和表变量到底有什么区别?
一:背景 1. 讲故事 今天和大家聊一套面试中经常被问到的高频题,对,就是 临时表 和 表变量 这俩玩意,如果有朋友在面试中回答的不好,可以尝试看下这篇能不能帮你成功迈过. 二:到底有什么区别 1. ...
- java并发AQS中应用:以acquire()方法为例来分析线程间的同步与协作
谈到java中的并发,我们就避不开线程之间的同步和协作问题,谈到线程同步和协作我们就不能不谈谈jdk中提供的AbstractQueuedSynchronizer(翻译过来就是抽象的队列同步器)机制: ...
- .NET Core 项目启动时运行定时任务
1.任务需求 在每次服务启动时定时(如24小时)清理一次缓存文件 2.代码实现 1)新建文件清理类 .NET Core 提供了BackgroundService的抽象类,在 ExecuteAsync ...
- 硬件协议之uart
1. 常规状态下,高电平 2. Start位, 低电平 3. 数据信号次序LSB, 即bit0最先传输, 低电平代表0, 高电平代表1 4. Stop位, 高电平 由此可见传送一个字节,需要1 ...
- Zstack使用经验系列1-安装的网络配置
https://www.zstack.io/help/product_manuals/maintenance_manual/4.html 在官网上从这里有详细的安装,读者可以从上面链接开始起步装起来. ...
- 微信小程序使用vant组件样式不生效的问题
下面提供几个解决方案 方案一: 官方文档有说明,将 app.json 中的 "style": "v2" 去除,小程序的新版基础组件强行加上了许多样式,难以覆盖, ...
- C语言-三子棋项目
开源地址 https://kxd.lanzoul.com/iLwHG0e4nupc 肯定有大量BUG 求指出 电脑自动下棋的算法很差 毕竟我也没特意去研究
- 详解神经网络基础部件BN层
摘要:在深度神经网络训练的过程中,由于网络中参数变化而引起网络中间层数据分布发生变化的这一过程被称为内部协变量偏移(Internal Covariate Shift),而 BN 可以解决这个问题. 本 ...