专栏首页cwl_Java数据结构与算法-打印菱形算法

数据结构与算法-打印菱形算法

package *;

/**
 * @program: data-structure
 * @description: 打印菱形算法
 * @author: ChenWenLong
 * @create: 2019-09-10 14:38
 **/
public class Rhombus {

    public static void main(String[] args) {
        //printHollowRhombus(10);
        printSolidRhombus(10);
    }

    /**
     * 功能描述:
     * 〈打印指定行数line的空心菱形〉
     *
     * @params : [line]
     * @return : void
     * @author : cwl
     * @date : 2019/9/10 15:12
     */
    public static void printHollowRhombus(int line) {
        if (line % 2 == 0) {
            line++;// 计算菱形大小
        }
        for (int i = 0; i < line / 2 + 1; i++) {
            for (int j = line / 2 + 1; j > i + 1; j--) {
                System.out.print("  ");// 输出左上角位置的空白
            }
            for (int j = 0; j < 2 * i + 1; j++) {
                if (j == 0 || j == 2 * i) {
                    System.out.print("* ");// 输出菱形上半部边缘
                } else {
                    System.out.print("  ");// 输出菱形上半部空心
                }
            }
            System.out.println("");		//换行
        }
        for (int i = line / 2 + 1; i < line; i++) {
            for (int j = 0; j < i - line / 2; j++) {
                System.out.print("  ");// 输出菱形左下角空白
            }
            for (int j = 0; j < 2 * line - 1 - 2 * i; j++) {
                if (j == 0 || j == 2 * (line - i - 1)) {
                    System.out.print("* ");// 输出菱形下半部边缘
                } else {
                    System.out.print("  ");// 输出菱形下半部空心
                }
            }
            System.out.println("");		//换行
        }
    }
    
    /**
     * 功能描述: 
     * 〈打印指定行数line的实心菱形〉
     *
     * @params : [line]
     * @return : void
     * @author : cwl
     * @date : 2019/9/10 15:14
     */
    public static void printSolidRhombus(int line){
        for(int i = 0;i < line;i++){
            for(int k = 0;k < line-1 - i;k++){
                System.out.print(" ");
            }
            for(int j = 0;j < i + 1;j++){
                System.out.print("* ");
            }
            System.out.println();
        }
        //下半部分
        for(int i = 0;i < line-1;i++){
            for(int k = 0;k < i + 1;k++){
                System.out.print(" ");
            }
            for(int j = 0;j < line-1 - i;j++){
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据结构与算法-打印99乘法表

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java
  • 数据结构与算法-打印梯形算法

    cwl_java
  • 数据结构与算法-打印等腰三角形算法

    cwl_java
  • 【编程题】Java编程题四(10道)

    【编程题】Java编程题四(10道) 【程序31】 题目:将一个数组逆序输出。 import java.util.*; public class lian...

    Java帮帮
  • 曾经做过的40道程序设计课后习题总结(一)

    曾经做过的40道程序设计课后习题总结(一) 课后习题目录 1 斐波那契数列 2 判断素数 3 水仙花数 4 分解质因数 5 杨辉三角 6 学习成绩查询...

    闵开慧
  • Java实现输出九九乘法表—for循环和递归算法

    zeruns
  • 数据结构与算法-打印99乘法表

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java
  • 数据结构与算法-打印梯形算法

    cwl_java
  • 【算法-希尔排序】

    对关键字{10,20,8,25,35,6,18,30,5,15,28}序列进行希尔排序,取增量d =5时,排序结果为( )

    用户5640963
  • JAVA 练习 找出素数

    拾点阳光

扫码关注云+社区

领取腾讯云代金券