打印如图所示圣诞树:
tree.png分析:
圣诞树分2部分:
- part A
树冠部分:共10层(行)
int row = 10;
每一层由空格字符,和星花 “*”组成的字符串
观察:
第一层:空格数量9,星花数量为1
第二层:空格数量8,星花数量为3
第三层:空格数量7,星花数量为5
...
第10层:空格数量为0,星花数量为19
其规律为第 i层:空格数量为row - i, 星花数量为 i * 2 - 1
// 一共有多少层,外层循环就有几次
for (int i = 1; i <= row; i++) {
// 标记第i层
// 第 i 层有多少空格
for (int j = row-i; j > 0; j--) {
System.out.print(" ");
}
// 第 i 层有多少星花
for (int k = 1; k <= (i*2-1) ; k++) {
System.out.print("*");
}
// 一层结束换行
System.out.println();
}
- part B
树干部分:共2层(行)
// 树干
// 外层循环 2次
// 内层循环确定空格数量
// 空格 + *
for (int i = 1; i <= rootNum; i++) {
for (int j = 1; j < row; j++) {
System.out.print(" ");
}
System.out.print("*\n");
}
完成~ I am groot~
网友评论