算法训练 正六边形(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实现)的主要内容,如果未能解决你的问题,请参考以下文章