Java打印菱形图
来源:互联网 发布:遂宁知秋凤凰婚庆 编辑:程序博客网 时间:2024/06/11 01:46
1.首先,要打印的图形如下所示:
2. 分析
1) 把整体看成上下部分,上部分是一个三角形,下部分是个倒三角形,另外星号前后的空格也是该图形的一部分。
2)首先,我们先来分析上部分,所以对于上部分,我们可以把空格和星号当作一个整体,那么它就成了一个矩形状。
要打印矩形状,显然需要二重循环才能实现,然后在打印的时候无非是控制输出空格或星号的问题了。
3)由上图可知,上部分三角形的第一行星号在从中间位置开始,第二行的星号是从中间位置的前一个开始,
第三行的星号是从中间位置的前两个开始,......,并且,如果假设row表示当前第row行,那么每一行打印星号的个数为(row-1)*2 +1
4)下部分三角形第一行要跳跃一行,每一行的打印星号的起始位置就等于当前是第几行row,且每行输出星号的个数为
整个图形的最大列数(cols)- 当前第几行(row)* 2
3.源码
/***打印星号组成的菱形状图形*/class PrintRhombus{public static void main(String[] args) throws Exception{int rows = 6; //行数int cols = 11; //列数//打印上面部分的三角形for(int i = 0; i < rows; i++){ //控制行数int pos = (cols/2 + 1) - i; //得到每一行第一个输出星号的位置for(int j = 1; j <= cols; j++ ){ //控制列数if(pos == j){ //当遇到第一个输出星号的位置时for(int k = 0; k < i*2+1 ; k++){ //输出每行的星号System.out.print("*");}}else{//其他地方都输出空格System.out.print(" ");}}System.out.println();//换行}//打印下面部分的倒置三角形for(int i = 1; i < rows; i++){ //控制行数int pos = (i + 1) ; //得到每一行第一个输出星号的位置for(int j = 1; j <= cols; j++ ){ //控制列数 if(pos == j){ //当遇到第一个输出星号的位置时for(int k = 0; k < cols-(i*2); k++){ //输出每行的星号System.out.print("*");}}else{ //其他地方都输出空格System.out.print(" "); }}System.out.println(); //换行}}}
0 0
- Java打印菱形图
- java打印菱形,空心菱形
- 用java 打印菱形
- java打印菱形思路
- 用java打印菱形
- Java打印出菱形
- java打印菱形
- java 打印菱形
- java打印各种菱形
- java实现 打印菱形
- java打印菱形()
- Java编程打印菱形
- Java程序打印菱形
- Java提高 - 菱形打印
- Java打印菱形
- java实现打印菱形
- Java 打印空心菱形
- Java实现打印菱形
- 笔记-编译器选项之预编译头
- 在控制台下显示进度
- 谈谈观察者模式
- VBScript使用window.open打开新窗口
- Objective-C代码规范
- Java打印菱形图
- PB Send()函数应用有关数据整理
- 深入研究Java类加载机制
- DELPHI中MessageBox的用法
- Android Debuggerd 简要介绍和源码分析
- 乱记
- MapReduce1-1: 提高MapReduce性能的七点建议
- 栈帧结构浅析记录
- JQuery