您的位置:首页 > 编程语言 > Java开发

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

2017-08-21 21:28 639 查看
使用for循环语句输出以下“树木”效果:
*
***
*****
*******
*********
*
*
*
*
*


代码:
/*
*
***
*****
*******
*********
*
*
*
*
*

分析:
- 树顶(共5层)
每层构成:每层每层空格数+每层星星数
第1层 -- 空格数:4 + 星星数:1
第2层 -- 空格数:3 + 星星数:3
第3层 -- 空格数:2 + 星星数:5
第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) + 星星数:5(= 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("*");

}
}
}


代码结果显示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java