Java有关菱形的输出

这篇博客介绍了如何使用Java编程来输出菱形图形。博主首先将菱形分为上下两个部分,然后详细分析了每个部分的图形模块,包括空格和数字的输出规律。通过对这些规律的理解,博主给出了相应的代码实现,分别展示了上半部分和下半部分的代码,并最终整合为完整的菱形输出代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到这种图形,我们可以对图形进行拆分为几个模块,然后根据拆分的图形模块写代码.

首先把这个图形分为上下两部分

      

一.然后我们再对上半部分进行拆分

仔细观察可以发现,上半部分可分为四个图形模块:

1.我们先分析三角形空格部分:

(1)通过观察,不难发现左边输出空格的规律:

第i行输出的空格:输入的总行数- i.(即第一行输出的空格为:5-1=4个空格,第二行输出为:5-2=3个空格......)

(2)同理右边输出空格的规律:

第i行输出的空格:输入的总行数- i.(即第一行输出为:5-1=4个空格,第二行输出为:5-2=3个空格......)

2.左边数字部分规律,即第i行就输出i个数字.for循环,i=1开始,到i=总行数停止i.即for(i=1;i<=a;i++)//a为输入的总行数.

3.右边数字部分规律,即第i行就输出i个数字,.for循环,i=1开始,到i=总行数停止i.即for(i=1;i<=a;i++)//a为输入的总行数.

分析完后开始编写代码

代码如下:

import java.util.Scanner;

public class Test6 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int a = input.nextInt();
        for(int i = 1;i <= a;i++){//行数
            for(int j = a;j >= i-1;j--){//空格
                System.out.print(" ");
            }
            for(int k = 1;k <= i;k++){//左边数字部分
                System.out.print(k);
            }
            for(int g = i-1;g >= 1;g--){//右边数字部分
                System.out.print(g);
            }
            System.out.print("\n");
        }

        }

}

上半部分结果运行如上

二.同理对下半部分进行分析

下半部分也是分为四个图形模块:

1.我们先分析三角形空格部分:

(1)通过观察,不难发现左边输出空格的规律:

第i行输出的空格:输出i个空格

(2)同理右边输出空格的规律:

第i行输出的空格:输出i个空格

2.左边数字部分规律,第i行输出数字:总行数-i,

3.右边数字部分规律,第i行输出数字:总行数-i,

分析完后开始编写代码

代码如下:

import java.util.Scanner;

public class Test6 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int a = input.nextInt();
      
        for(int i1 = a-1;i1 >= 1;i1--){//行数
            for(int j1 = i1-1;j1 <= a;j1++){//空格
                System.out.print(" ");
            }
            for(int k = 1;k <= i1;k++){//左边数字
                System.out.print(k);
            }
            for(int g = i1-1;g >= 1;g--){//右边数字
                System.out.print(g);
            }
            System.out.print("\n");
        }
    }
}

下半部分运行结果如上图

三.对上下两部分代码进行整合,即:

import java.util.Scanner;

public class Test6 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int a = input.nextInt();
        for(int i = 1;i <= a;i++){//行数
            for(int j = a;j >= i-1;j--){//空格
                System.out.print(" ");
            }
            for(int k = 1;k <= i;k++){//左边数字部分
                System.out.print(k);
            }
            for(int g = i-1;g >= 1;g--){//右边数字部分
                System.out.print(g);
            }
            System.out.print("\n");
        }
        for(int i1 = a-1;i1 >= 1;i1--){//行数
            for(int j1 = i1-1;j1 <= a;j1++){//空格
                System.out.print(" ");
            }
            for(int k = 1;k <= i1;k++){//左边数字
                System.out.print(k);
            }
            for(int g = i1-1;g >= 1;g--){//右边数字
                System.out.print(g);
            }
            System.out.print("\n");
        }
    }
}

输出结果如上图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值