前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据结构与算法-打印菱形算法

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

作者头像
cwl_java
发布2019-10-26 21:24:43
4760
发布2019-10-26 21:24:43
举报
文章被收录于专栏:cwl_Javacwl_Java
代码语言:javascript
复制
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();
        }
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档