算法训练 正六边形(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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>