经典题:用Java打印空心金字塔

本文介绍了如何使用Java编程语言逐步实现空心金字塔的打印,包括打印5*5矩阵、直角三角形、实心金字塔,以及空心金字塔,并给出了最终的改进版,允许用户自定义金字塔层数。

用Java打印空心金字塔

(1)打印一个5*5的矩阵

输出案例

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

本题需要用到循环嵌套,我使用for循环。
首先,需要定义两个变量,矩阵的行数和列数,我用i表示行数,j表示列数。
然后,进行两个for循环的嵌套。
换行一定要注意,内循环打印不要换行,跳出内循环之后再换行。

代码如下:

public class A {
   
   
    public static void main(String[] args){
   
   
        int i;
        int j;
        for (i = 1;i <= 5;i++){
   
   
            for (j = 1;j <= 5;j++){
   
   
                System.out.print('*');
            }
            System.out.println();
        }
    }
}

(2)打印一个层数为5的直角三角形

输出案例

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

本题只需要将j<=5 换成j<=2*i-1,即可成立。

代码如下:

public class A {
   
   
    public static void main(String<
打印空心金字塔可以通过以下思路和代码实现: ### 思路分析 1. **打印矩形**:使用`for`循环控制输出矩形形状,不过这只是初步步骤,对最终空心金字塔打印起辅助理解作用。 2. **输出半个金字塔**:利用两个`for`循环嵌套,根据层数输出对应数量的`*`,每层`*`的数量和层数相等。 3. **打印整个金字塔**:除了输出`*`,还需考虑每前面的空格数量,空格数量等于总层数减去当前层数,每层`*`的数量为`2 * 当前层 - 1`。 4. **打印空心金字塔**:对于非最后一层,只在当前的第一个位置和最后一个位置输出`*`,最后一层则全部输出`*`。 5. **代码优化**:将层数做成变量,增强程序的灵活性。 ### Java 代码实现 ```java public class HollowPyramid { public static void main(String[] args) { int totalLevel = 5; // 总层数 for (int i = 1; i <= totalLevel; i++) { // 打印空格 for (int z = 1; z <= totalLevel - i; z++) { System.out.print(" "); } // 打印 * for (int j = 1; j <= 2 * i - 1; j++) { if (i == totalLevel || j == 1 || j == 2 * i - 1) { System.out.print("*"); } else { System.out.print(" "); } } System.out.println(); } } } ``` ### C 语言代码实现 ```c #include <stdio.h> int main() { int n; printf("请输入金字塔的层数: "); scanf("%d", &n); for (int i = 1; i <= n; i++) { // 打印空格 for (int z = 1; z <= n - i; z++) { printf(" "); } // 打印 * for (int j = 1; j <= 2 * i - 1; j++) { if (i == n || j == 1 || j == 2 * i - 1) { printf("*"); } else { printf(" "); } } printf("\n"); } return 0; } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邱崇源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值