蓝桥杯 算法提高 输出正反三角形 (Java)

简介: 蓝桥杯 算法提高 输出正反三角形 (Java)

使用循环结构打印下述图形,打印行数n由用户输入。图中每行事实上包括两部分,中间间隔空格字符数m也由用户输入。


样例输入n,m:


5 4


样例输出:

  *    *********
   ***    *******
  *****    *****
 *******    ***
*********    *


注意:两行之间没有空行。


看到这个题,我这个人就比较懒,不想去打印三角形,就把他们直接看作一个矩形,然后我们把这个里面的空格打出来不就行了,建立一个二维数组,全部赋值为“ * ” ,然后我们把空格处都和原来的一替换,然后打印这个二维数组就行了


我们要严格的进行打印要和人家一样,要不然是0分哦!!!


矩形的行已经知道了,我们得算出列,根据它给出的输出,我们可以推出二维数组的列为((n*2-1)+n+m)

然后它两边的空格是 n-2 然后每行每次在减1,中间的空格我们就每次打印m个,然后每次向右边挪一下就行,

代码如下:

package 算法提高;
import java.util.Scanner;
public class Test88_01 {
public static void main(String[] args) {
  Scanner scanner = new Scanner(System.in);
  int n = scanner.nextInt();
  int m = scanner.nextInt();
  int y=n-2;
  int z=(n*2-1)+m+n;
  int[][] a = new int[n][z];
  //全部初始化为“ * ”
  for (int i = 0; i < n ; i++) {
    for (int j = 0; j < z; j++) {
      a[i][j]='*';
    }
  }
  //打印左上的空格,从最小往最大行打印
  for (int i = 0; i < n; i++,y--) {
    for (int j =y; j>=0; j--) {
      a[i][j]=' ';
    }
  }
  //打印右下的空格,从最大往最下行打印
  y = n-2;//因为我们上面打印的时候y已经是-1,所以我们在这里重新赋值
  for (int i = n-1; i >= 0; i--,y--) {
    for (int j =z-1-y; j<z ; j++) {
      a[i][j]=' ';
    }
  }
  //打印中件的空格,每次都根据行来加,就实现了每次向右移一格
  for (int i = 0; i < n; i++) {
    for (int j = n; j <n+m ; j++) {
      a[i][i+j]=' ';
    }
  }
  //输出这个二维数组
  for (int i = 0; i < n ; i++) {
    for (int j = 0; j < z; j++) {
      //因为int和char,是可以转换的,所以我们建立的int型数组是可以打印的
      System.out.printf("%c",a[i][j]);
    }
    System.out.println();
  }
}
}


目录
相关文章
|
10天前
|
监控 算法 网络协议
Java 实现局域网电脑屏幕监控算法揭秘
在数字化办公环境中,局域网电脑屏幕监控至关重要。本文介绍用Java实现这一功能的算法,涵盖图像采集、数据传输和监控端显示三个关键环节。通过Java的AWT/Swing库和Robot类抓取屏幕图像,使用Socket进行TCP/IP通信传输图像数据,并利用ImageIO类在监控端展示图像。整个过程确保高效、实时和准确,为提升数字化管理提供了技术基础。
44 15
|
3月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
106 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
2天前
|
运维 监控 算法
企业局域网监控软件中 Java 优先队列算法的核心优势
企业局域网监控软件是数字化时代企业网络安全与高效运营的基石,犹如一位洞察秋毫的卫士。通过Java实现的优先队列算法,它能依据事件优先级排序,确保关键网络事件如异常流量、数据泄露等被优先处理,保障系统稳定与安全。代码示例展示了如何定义网络事件类并使用PriorityQueue处理高优先级事件,尤其在面对疑似风险时迅速启动应急措施。这一核心技术助力企业在复杂网络环境中稳健前行,护航业务腾飞。
49 32
|
3月前
|
算法 测试技术 C++
【动态规划算法】蓝桥杯填充问题(C/C++)
【动态规划算法】蓝桥杯填充问题(C/C++)
|
1天前
|
存储 算法 安全
探究‘公司禁用 U 盘’背后的哈希表算法与 Java 实现
在数字化办公时代,信息安全至关重要。许多公司采取“禁用U盘”策略,利用哈希表算法高效管理外接设备的接入权限。哈希表通过哈希函数将设备标识映射到数组索引,快速判断U盘是否授权。例如,公司预先将允许的U盘标识存入哈希表,新设备接入时迅速验证,未授权则禁止传输并报警。这有效防止恶意软件和数据泄露,保障企业信息安全。 代码示例展示了如何用Java实现简单的哈希表,模拟公司U盘管控场景。哈希表不仅用于设备管理,还在文件索引、用户权限等多方面助力信息安全防线的构建,为企业数字化进程保驾护航。
|
5月前
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
16天前
|
缓存 算法 搜索推荐
Java中的算法优化与复杂度分析
在Java开发中,理解和优化算法的时间复杂度和空间复杂度是提升程序性能的关键。通过合理选择数据结构、避免重复计算、应用分治法等策略,可以显著提高算法效率。在实际开发中,应该根据具体需求和场景,选择合适的优化方法,从而编写出高效、可靠的代码。
27 6
|
5月前
|
搜索推荐 算法 Java
手写快排:教你用Java写出高效排序算法!
快速排序(QuickSort)是经典的排序算法之一,基于分治思想,平均时间复杂度为O(n log n),广泛应用于各种场合。在这篇文章中,我们将手写一个Java版本的快速排序,从基础实现到优化策略,并逐步解析代码背后的逻辑。
194 1
|
3月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
135 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
3月前
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
167 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
下一篇
开通oss服务