空心金字塔
【代码展示】
import java.util.Scanner;
public class Pyramid{
public static void main(String args[]){
Scanner scanner = new Scanner(System.in);
System.out.println("输入你要求的空心金字塔层数:");
int tier = scanner.nextInt();
for(int i = 1; i <= tier; i++){
for(int k = 1; k <= tier-i; k++) {
System.out.print(" ");
}
for(int j = 1; j <= 2*i-1; j++){
if (j==1 || j==2*i-1 || i==tier) {
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println("");
}
}
}
【细节讲解】
-
假设要打印一个 5 层的打印空心金字塔,你可以先打印一个 5*5 的正方形,可利用循环嵌套;
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
System.out.print("*");
}
}
-
根据正方形将其修改为三角形,根据规律可以发现:修改后每层 * 的个数为【层数 * 2 - 1】;
for (int i = 1; i <= a; i++) {
for (int j = 1; j <= 2*i-1; j++) {
System.out.print("*");
}
}
-
在每一行添加空格,使其变成实心的金字塔;
for (int i = 1; i <= 5; i++) {
for (int k = 1; k <= 5 - i; k++) {
System.out.print(" ");
}
for (int j = 1; j <= 2*i-1; j++) {
System.out.print("*");
}
System.out.println(" ");
}
- 在内层循环中修改,即:除了最后一行【i = 层数】和内层【j=1 和 j=2*i-1】之外全修改为空格;
//仅展示内层循环的变化
for(int j = 1; j <= 2*i-1; j++){
if (j==1 || j==2*i-1 || i==tier) {
System.out.print("*");
}else{
System.out.print(" ");
}
}
【随着代码变化图示】