for循环输出树木的形状【java】

使用for循环语句输出以下“树木”效果:

    *
   ***
  *****
 *******
*********
    *
    *
    *
    *
    *

代码:

/*
    *
   ***
  *****
 *******
*********
    *
    *
    *
    *
    *

分析:
    - 树顶(共5层)
        每层构成:每层每层空格数+每层星星数
            第1层 -- 空格数:4 + 星星数:1
            第2层 -- 空格数:3 + 星星数:3
            第3层 -- 空格数:2 + 星星数:4
            第4层 -- 空格数:1 + 星星数:7
            第5层 -- 空格数:0 + 星星数:9

            分析:
            第1层 -- 空格数:4(= 5-1) + 星星数:1(= 2*1-1)
            第2层 -- 空格数:3(= 5-2) + 星星数:3(= 2*2-1)
            第3层 -- 空格数:2(= 5-3) + 星星数:4(= 2*3-1)
            第4层 -- 空格数:1(= 5-4) + 星星数:7(= 2*4-1)
            第5层 -- 空格数:0(= 5-5) + 星星数:9(= 2*5-1)

            推理:(共layer层树顶)
            第i层 -- 空格数 = (layer-i) + (星星数 = 2*i-1)

    - 树干(共5层)
            第1层 -- 空格数:4 + 星星数:1
            第2层 -- 空格数:4 + 星星数:1
            第3层 -- 空格数:4 + 星星数:1
            第4层 -- 空格数:4 + 星星数:1
            第5层 -- 空格数:4 + 星星数:1

            相似于第1层结果,即:
            第1层 -- 空格数:4 + 星星数:1
            类比树顶第i层结果得出:第1层 -- 空格数:(layer-1)+ 星星数:1

            分析:(共layer层树顶)
            第1层 -- 空格数:(layer-1)+ 星星数:1
            第2层 -- 空格数:(layer-1)+ 星星数:1
            第3层 -- 空格数:(layer-1)+ 星星数:1
            第4层 -- 空格数:(layer-1)+ 星星数:1
            第5层 -- 空格数:(layer-1)+ 星星数:1

*/

public class StarTree
{
    public static void main(String[] args){
        int layer = 5;

        // 一、树顶
        for(int i=1;i<=layer;i++){

            // 1、获取空格需要显示数量
            int spaceNum = layer-i;
            for(int j=1;j<=spaceNum;j++){  // 需要打印空格的数量
                System.out.print(" ");
            }

            // 2、获取星星需要显示的数量
            int starNum = 2*i-1;
            for(int j=1;j<=starNum;j++){ // 需要打印星星的数量
                System.out.print("*");
            }
            // 3、换行
            System.out.println();
        }

        // 二、树干
        for(int i=1;i<=layer;i++){

            // 1、获取空格需要显示数量
            int spaceNum = layer-1;
            for(int j=1;j<=spaceNum;j++){
                System.out.print(" ");
            }
            // 2、获取星星需要显示的数量并换行
            System.out.println("*");

        }
    }
}

代码结果显示:

时间: 2024-11-02 23:37:20

for循环输出树木的形状【java】的相关文章

for循环输出漏斗的形状【java】

使用for循环语句输出以下"漏斗"效果: +------+ |\..../| | \../ | | \/ | | /\ | | /..\ | |/....\| +------+ 代码:(解决思路详见代码头部多行注释) 本例代码中使用了常量 HEIGHT,是指漏斗内部高度值的一半作为常量值. /* * +------+ HEIGHT:3 * |\..../| 第一行:空格数:0 点数:4 空格数:0 * | \../ | 第二行:空格数:1 点数:2 空格数:1 * | \/ | 第三行

for循环输出菱形的形状【java】

使用for循环语句输出以下"菱形"效果: * *** ***** ******* ********* ******* ***** *** * 代码 1 /* 2 * 3 *** 4 ***** 5 ******* 6 ********* 7 ******* 8 ***** 9 *** 10 * 11 12 分析: 13 - 上层(共5层) 14 每层构成:每层每层空格数+每层星星数 15 第1层 -- 空格数:4 + 星星数:1 16 第2层 -- 空格数:3 + 星星数:3 17 第

for循环输出素数探究【java】

一.判断953是不是为素数(质数). 代码: 1 /** 2 判断953是不是为素数(质数) 3 分析: 4 素数指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数. 5 假设953是素数,则: 6 953 % 2 !== 0 7 953 % 3 !== 0 8 953 % 4 !== 0 9 -- 10 953 % 952 !== 0 11 反推得出,只要953被2~952之间的任何一个整数整除,则953不是素数. 12 13 除数从2开始到952按照整数依次递增,则

for循环输出空心菱形的形状【java】

使用for循环语句输出以下"空心菱形"效果: * * * * * * * * * * * * * * * * 建议优先参考笔者的另一篇文章:<for循环输出菱形的形状[java]> 代码: 1 /* 2 * 3 * * 4 * * 5 * * 6 * * 7 * * 8 * * 9 * * 10 * 11 12 分析: 13 上图形似于实心菱形 14 * 15 *** 16 ***** 17 ******* 18 ********* 19 ******* 20 *****

while循环输出如下语句: 2*5=10 4*10=40 6*15=90 …… ?*100=?

import java.util.Scanner; /** * @author 蓝色以太 while循环输出如下语句: 2*5=10 4*10=40 6*15=90 -- ?*100=? */ public class While { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入层高:"); int num = sc.nextIn

代码实现:输出下列的形状-直角三角形

/* 需求:请输出下列的形状 * ** *** **** ***** */ class Demo2_ForFor { public static void main(String[] args) { for (int i = 1;i <= 5 ; i++) { //外循环决定行数 for (int j = 1;j <= i ;j++ ) { //内循环决定列数 System.out.print("*"); } System.out.println(); //将光标换到下一行

假如数组接收到一个null,那么应该怎么循环输出。百度结果,都需要提前判断。否则出现空指针异常。。我还是想在数组中实现保存和输出null。

假如数组接收到一个null,那么应该怎么循环输出.因为foreach与obj.length都会报错.null不是对象,foreach中不能赋值? sp页面forEach一个存放对象的集合,怎么判断其中一个对象是否null? 2015-11-22 18:14lifeYesorno | 浏览 87 次 JSP编程语言 <c:forEach var="design" items="${designs }"></c:forEach>${designs

关于hasNextInt判断后无限循环输出else项的解决办法

话不多说,上来就是干! import java.util.Scanner; public class Test_hasNextInt { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); //关于hasNextInt判断后无限循环输出else项的解决办法 String next;

For循环输出一个表格

<!-- 作者:郑伟钊 时间:2017-01-16 描述:通过一个循环的嵌套输出一个表格 --> <?php header("Content-type:text/html;charset=utf-8"); //如果不加这一行,输出的中文会乱码 echo '<table border="1px" width="800" align="center">' ; //设置表格的边框为1px,宽度为800(