关于 蓝桥杯 打印六芒星 的 另类方法

刚入门不久的人也能做出来的一种方法
或者了解很深的人也可能不知道的一个方法

原题如下

【输入格式】
输入一行包含一个整数 n。
【输出格式】
输出一个六芒星,表示满足题意的图形。
【样例输入】
3
4
【样例输出】

【评测用例规模与约定】
对于所有评测用例,1 ≤ n ≤ 20。

另类的思路

首先我 想到了把它拆成上层镂空三角形与下层的镂空三角形,
再让下层的移点位置就可以了 ,那么怎么把它们合在一起?

注意到原图是仅由两种元素组成的,所以我可以做一个类似于显示屏的东西。把三角形的每一个位置的信息传递给显示屏的每一个单元,于是需要一个二维数组来充当显示屏。再用类似于遍历二维数组的方法来做到输出图案。

合适的阅读的对象

刚刚学到数组的小伙伴

学习java等等编程很深的人,想了解更多的做题方法或者另类思路的大佬

源码如下

package tianjinzheng;
import java.util.*;
public class lan1 {public static void main(String[] args) {Scanner sc =new Scanner(System.in); System.out.println("请输入你需要的层数:");int n=sc.nextInt(); //当取18时,为原题情况if (n % 2 == 0) {n++;}int[][]a;a = new int[n][n];//简化情况,只留下奇数时的六芒星的结果int upleft = a.length;int upright = a.length;for (int i = 0; i < a.length / 2; i++) {for (int j = 0; j < a.length; j++) {if (j == upleft / 2 | j == upright  / 2) {a[i][j] ++;}}upleft  = upleft + 2;upright = upright - 2;}for (int k = 0; k < a.length; k++) {a[a.length / 2][k]++;}//打印出上层的镂空三角形int shift = (a.length / 2 - 1) / 2 - 1;int underleft = 0;int underright = 2 * a.length - 1;for (int i = 0; i < a.length / 2 + 1; i++) {for (int j = 0 ; j < a.length; j++) {if (j == underleft / 2 | j == underright / 2) {a[i + shift][j] ++;}}underleft = underleft + 2;underright = underright -2;       }for (int k = 0; k < a.length; k++) {a[0 + shift][k]++;}//打印出下层的镂空三角形for (int i = 0; i < a.length; i++) {for (int j = 0; j < a.length; j++) {if (a[i][j] >= 1) {System.out.print("*");}else {System.out.print(" ");}}System.out.println();}//类似二维数组遍历,遍历打印出所有数组基于数值得到的两种情况之一}
}

举例如下


衍生品,打印出箭头

源码如下

package tianjinzheng;
import java.util.*;
public class jiantou {public static void main(String[] args) {Scanner sc =new Scanner(System.in); System.out.println("请输入你需要的层数:");int input=sc.nextInt(); if (input % 2 == 0) {input++;}int[][]a;a = new int[input][input];for (int p = 0; p < a.length; p++) {for (int o = 0; o < a.length; o++) {a[p][o] = 0;}}    int asd = a.length;int asdd = a.length;for (int i = 0; i < a.length / 2; i++) {for (int j = 0; j < a.length; j++) {if (j == asd / 2 | j == asdd  / 2) {a[i][j] ++;}}asd  = asd + 2;asdd = asdd - 2;}for (int k = 0; k < a.length; k++) {a[k][a.length / 2]++;}for (int n = 0; n < a.length; n++) {for (int v = 0; v < a.length; v++) {if (a[n][v] >= 1) {System.out.print("*");}else {System.out.print(" ");}}System.out.println();}}
}

举例如下

以上,通过很简单的方法,刚入门的小白都能写出来

害!!大一新生,刚学java,代码写的很烂,各位大佬们轻喷。另外我是日语生,所以看上面的英语变量会感觉很赶脚。。。

第一次写博客,有什么意见或者里面的规定务必提出来,谢谢学长学姐大佬们了

关于 蓝桥杯 打印六芒星 的 另类方法相关推荐

  1. java中的冰雹数,java实现第七届蓝桥杯打印数字

    打印数字 打印数字 小明写了一个有趣的程序,给定一串数字. 它可以输出这串数字拼出放大的自己的样子. 比如"2016"会输出为: 00000 1 6666 2 0 0 1 1 6 ...

  2. 蓝桥杯-打印十字图-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  3. 蓝桥杯-打印菱形/字符串截断

    字符串截断 package august20;public class 字符串截断 {public static void main(String[] args) {String a="he ...

  4. 蓝桥杯-- 打印 LOGO

          打印 LOGO 现在小学生也在学习基本的编程,课程目标是让小学生能够有基本的算法思想,并不涉及复杂的数据和实现细节与原理. LOGO 语言就非常适合小学生学习,它通过绘图的方式来直观的表现 ...

  5. java实现第七届蓝桥杯打印数字

    打印数字 打印数字小明写了一个有趣的程序,给定一串数字. 它可以输出这串数字拼出放大的自己的样子.比如"2016"会输出为:00000 1 66662 0 0 1 1 6 0 0 ...

  6. 蓝桥杯—打印十字图—Java

    1.问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示(可参见p1.jpg)     对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数. 为了能准确比对空 ...

  7. 蓝桥杯-振兴中华三种解题方法(C语言)

    题目: 小明参加了学校的趣味运动会,其中的一个项目是:跳格子.地上画着一些格子,每个格子里写一个字,如下所示: 从我做起振 我做起振兴 做起振兴中 起振兴中华 比赛时,先站在左上角的写着"从 ...

  8. c语言奇怪的分式11,蓝桥杯-奇怪的分式-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  9. 蓝桥杯知识点汇总:基础知识和常用算法

    文章目录 JAVA基础语法: 算法竞赛常用的JAVA API: 算法和数据结构 简单算法 简单数据结构 图论 数学 贪心 动态规划 补充 省赛题解 待更: 此系列包含蓝桥杯(软件类)所考察的绝大部分知 ...

最新文章

  1. 编译nginx时的两个报错
  2. visio 模具_小研爱科研 || 那些Visio里的小技巧你Get了吗?
  3. java自定义注解为空值_java自定义注解
  4. 优雅地断开TCP连接
  5. 如何使用Instruments诊断App(Swift版):起步
  6. JDBC查询Oracle全部表名称,如何使用JDBC API从Oracle数据库中的现有表中检索记录?...
  7. 每日一题——剑指 Offer24反转链表
  8. RabbitMQ(1) - win+rabbitMQ
  9. 机器学习第20篇 - 基于Boruta选择的特征变量构建随机森林
  10. php phpredis,PHP_PHP中redis的用法深入解析,redis是一个key-value存储系统。 - phpStudy...
  11. JAVA的节点流和处理流
  12. 查询系统--基于Solr4.9.0实现
  13. Java学习之路 之 提问及解决篇
  14. 比特币交易的脚本如何执行
  15. Hough变换的理解
  16. Arcgis培训内容
  17. 服务器销售周总结怎么写,网管周工作总结范文的内容
  18. 传奇服务器脚本文件在哪个文件夹,传奇私服的GM命令在哪个文件夹里?
  19. docker CLI官方教程 run方法解析(docer run 、docker attach 与 docker exec的区别)
  20. 参数的点估计问题与矩估计法

热门文章

  1. 如何正确的区分ByName和ByType?别纠结了!!!
  2. 苹果电脑一直弹框 无法打开“文件”,因为Apple无法检查其是否包含恶意软件。
  3. 基于matlab/simulink风电储能并网仿真模型
  4. linux查看硬盘占用情况
  5. uniapp app端使用html2canvas和renderjs实现生成海报图
  6. Linux加密磁盘配置且实现自动解密
  7. C++编程学习52个经典网站
  8. 自适应谐振理论网络|ART
  9. echarts 开发股票净值走势图记录
  10. 如何清理小米的其他文件