美文网首页
Java星号打印图形Top-Down设计

Java星号打印图形Top-Down设计

作者: 月影追猎者 | 来源:发表于2019-03-07 16:38 被阅读0次

Top-Down设计:将复杂问题划分为简单问题,找出问题的关键,定性或定量描述问题。

package com.jingdianxi.practice;

/**
 * 星号打印图形Top-Down设计
 * @author JingDianxi
 */
public class StarUtil {

    /**
     * 正方形
     * @param n 边长
     */
    public void square(int n) {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    /**
     * 等腰直角三角形,直角在左下
     * @param n 直角边长
     */
    public void lowLeftRightTri(int n) {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < i + 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    /**
     * 等腰直角三角形,直角在左上
     * @param n 直角边长
     */
    public void upLeftRightTri(int n) {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n - i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    /**
     * 等腰三角形,左右两边相等
     * @param n 高度
     */
    public void isoscelesTri(int n) {
        for (int i = 0; i < n; i++) {
            // 输出空格
            // 第1行,i=0,输出n-1(n-1-0)个空格
            // 第2行,i=1,输出n-2(n-1-1)个空格
            // 第n行,i=n-1,输出0(n-1-(n-1))个空格
            // 所以,每行输出n-1-i个空格
            for (int j = 0; j < n - 1 - i; j++) {
                System.out.print(" ");
            }
            // 输出星号
            // 第1行,i=0,输出1(2*0+1)个星号
            // 第2行,i=1,输出3(2*1+1)个星号
            // 第n行,i=n-1,输出2*(n-1)+1个星号
            // 所以,每行输出2*i+1个星号
            for (int j = 0; j < 2 * i + 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    public void diamond(int n) {
        // 输出上半部分,n行
        for (int i = 0; i < n; i++) {
            // 输出空格
            for (int j = 0; j < n - 1 - i; j++) {
                System.out.print(" ");
            }
            // 输出星号
            for (int j = 0; j < 2 * i + 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        // 输出下半部分,n-1行
        for (int i = 0; i < n - 1; i++) {
            // 输出空格
            // 第1行,i=0,输出1(0+1)个空格
            // 第2行,i=1,输出2(1+1)个空格
            // 第n-1行,i=n-2,输出n-1(n-2+1)个空格
            // 所以,每行输出i+1个空格
            for (int j = 0; j < i + 1; j++) {
                System.out.print(" ");
            }
            // 输出星号
            // 第1行,i=0,输出2*(n-1)-1(2*(n-1-0)-1)个星号
            // 第2行,i=1,输出2*(n-2)-1(2*(n-1-1)-1)个星号
            // 第n-1行,i=n-2,输出1(2*(n-1-(n-2))-1)个星号
            // 所以,每行输出2*(n-1-i)-1,即2*n-3-2*i个星号
            for (int j = 0; j < 2 * n - 3 - 2 * i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

相关文章

  • Java星号打印图形Top-Down设计

    Top-Down设计:将复杂问题划分为简单问题,找出问题的关键,定性或定量描述问题。

  • Java星号打印图形游戏

  • Java 打印图形

    首先来一道简单的问题输入行数打印这个图形 思路:1.肯定是使用for双循环打印,外层循环控制行,内层循环控制列2....

  • Java打印图形

  • Java打印图形

    Java 实例 – 打印菱形 输出指定行数的菱形。 编译后的结果为: Java 实例 – 九九乘法表 输出九九乘法...

  • (java)用*打印 图形

    void lx04() {/** 打印 图形/for (int i = 0; i < 4; i++) {for (...

  • Java实例-打印图形

    1、Java 实例 – 打印菱形:输出指定行数的菱形。 public class Img_Diamond { pu...

  • 常数变易算法

    打印出三星堆 先尝试逐层打印 使用循环打印,因为发现层数与空格/星号之间的关系是:随着层数的变大 空格变少 星号变...

  • Java案例-打印图形与π

    劳动节的来历 五一国际劳动节又称国际劳动节、劳动节,是世界上大多数国家的劳动节。节日源于美国芝加哥城的工人大罢工,...

  • 打印图形

    for (int i = 0; i <5; i++) {// //执行5次// for (in...

网友评论

      本文标题:Java星号打印图形Top-Down设计

      本文链接:https://www.haomeiwen.com/subject/fpncpqtx.html