算法训练 正六边形(JAVA实现)

Posted XinFeng@

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法训练 正六边形(JAVA实现)相关的知识,希望对你有一定的参考价值。

资源限制

时间限制:1.0s   内存限制:256.0MB

问题描述

  由键盘输入一个自然数n(2<=100) 编程打印如图所示的正六边形(n为边长)。其中每条边上含有n个*号。

输入格式

  一行:包含一个正整数n(2<=100)。

输出格式

  题目要求的图形。

样例输入

5

样例输出

数据规模和约定

  2<=n<=100。

提示:从标准输出设备的第一行开始,图形左边顶点靠左边。

可能是我想复杂了吧,我把图像分成了两个部分,分成了前n行 和后n-1行来分开分析的

如下:

​
import java.util.Scanner;
public class Main 
    public static void main(String[]args)
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for(int i = 1; i < n + 1; i++)               //i控制行
            if(i == 1)                       //第一行
                for (int j = 1; j < n; j++)        //先输出空格
                    System.out.print(" ");
                
                for (int j = 1; j < n + 1; j++)     //再输出*
                    System.out.print("*");
                
                System.out.println();
            

             else                //第一行之后的前n行(整个图像的上半部分)
                for(int j = 1; j < n - i +1 ; j ++)     //输出空格
                    System.out.print(" ");
                
                System.out.print("*");            //只输出一个*
                for(int j = 1; j < n +(i - 1)*2 - 1 ;j++)      //输出空格
                    System.out.print(" ");

                
                System.out.println("*");        //再输出一个*
                                     //至此,图像上半部分输出完毕,下半部分就是对称
                         //注意 i又从1开始

        for(int i = 1 ; i <  n  ; i++)         //i控制行
            if(i == n - 1)              //输出图像最后一行
                for (int j = 1; j < n; j++) 
                    System.out.print(" ");
                
                for (int j = 1; j < n + 1; j++) 
                    System.out.print("*");
                
                System.out.println();
            
            else
                for(int j = 1; j < i +1  ; j ++)
                    System.out.print(" ");
                
                System.out.print("*");
                for(int j = 1; j < 3*n - 2*i -3; j++)
                    System.out.print(" ");
                
                System.out.println("*");
            
        
    


​

哎嘿,值得纪念的一道题嘿嘿嘿2020.11.15-2021.11.15

以上是关于算法训练 正六边形(JAVA实现)的主要内容,如果未能解决你的问题,请参考以下文章

地图算法,正六边形相关总结

19_05_01校内训练[polygon]

2020牛客寒假算法基础集训营5.J——牛牛战队的秀场

unity之二维数组实现正六边形地图

unity之二维数组实现正六边形地图

unity之二维数组实现正六边形地图