当前位置: 首页 > news >正文

做网站工作好么win10优化大师免费版

做网站工作好么,win10优化大师免费版,做淘客网站能干嘛,临沂做网站建设的公司1 题目描述 疫情期间&#xff0c;小明隔离在家&#xff0c;百无聊赖&#xff0c;在纸上写数字玩。他发明了一种写法&#xff1a; 给出数字个数 n &#xff08;0 < n ≤ 999&#xff09;和行数 m&#xff08;0 < m ≤ 999&#xff09;&#xff0c;从左上角的 1 开始&…

1 题目描述

疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法:

给出数字个数 n (0 < n ≤ 999)和行数 m(0 < m ≤ 999),从左上角的 1 开始,按照顺时针螺旋向内写方式,依次写出2,3,…,n,最终形成一个 m 行矩阵。

小明对这个矩阵有些要求:

每行数字的个数一样多
列的数量尽可能少
填充数字时优先填充外部
数字不够时,使用单个 * 号占位

2 输入描述

两个整数,空格隔开,依次表示 n、m

3 输出描述

符合要求的唯一矩阵

4 用例

4.1 用例1

输入

9 4

输出

1 2 3
* * 4
9 * 5
8 7 6

4.2 用例2

输入

3 5

输出

1
2
3
*
*

5 题目分析·

考点:这道题考的是对二维数组的使用。
解析:题目中比较容易钻牛角尖的描述是每行数字的个数一样多。这句实际上是矩阵的特点,可以忽略。读完题目,我们发现有两个问题需要解决

1. 确定矩阵的列数
2. 设计填充的算法

通过列的数量尽可能少这个需求,我们可以想到,最少的情况,即矩阵中填充的全都是数字。那么列数= 填充的数字个数n/行数向上取整。
然后是如何填充,这就涉及到了二维数组的螺旋形遍历。我们可以想象一个人在背包容量限制下,在顺时针绕圈捡东西,当不为0,则为已捡过,即换方向捡。

6 Java代码

根据5中的思路,我们可以写出如下代码(代码中给出了详细的注释):


public class SpiralMatrix {public static void main(String[] args) {//这里n和m可以修改为使用Scanner从控制台读取输入int n = 120;int m = 7;int columnCount=Math.ceilDiv(n,m);int[][] matrix = new int[m][columnCount];fillSpiral(matrix,n);for (int i = 0; i < m; i++) {for (int j = 0; j < columnCount; j++) {System.out.printf("%2s ", matrix[i][j] == 0 ? "*" : matrix[i][j]);}System.out.println();}}public static void fillSpiral(int[][] matrix, int total) {// 将要填充的数字,从1开始int num = 1;// 方向变量,四个元素分别表示:向右,向下,向左,向上int[][] directions = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};// 初始化方向变量的索引,0表示初始方向为向右int dir = 0;// 初始化行列索引int row = 0, col = 0;// 继续填充,直到所有的数字被填充完while (num <= total) {// 将数字填充到矩阵的当前位置,然后数字加1matrix[row][col] = num++;// 尝试按照当前方向去获取新的行列索引int newRow = row + directions[dir][0];int newCol = col + directions[dir][1];// 检查新的行列索引是否超出矩阵的边界,或者该位置已经被填充过// 如果是,则将方向变量的索引加1(取模为了形成循环:向右,向下,向左,向上)if (newRow < 0 || newRow >= matrix.length || newCol < 0 || newCol >= matrix[0].length || matrix[newRow][newCol] != 0) {dir = (dir + 1) % 4;}// 根据新的方向更新行列索引row += directions[dir][0];col += directions[dir][1];}}
}
http://www.dinnco.com/news/35231.html

相关文章:

  • 国际贸易网站哪家好百度付费推广
  • 大连 做网站网站数据统计
  • 聊城做网站费用价格苏州整站优化
  • 在国外做网站怎么做推广让别人主动加我
  • 做动画网站怎么建公司网站
  • 用php做美食网站新东方小吃培训价格表
  • 做义工的靠谱网站注册推广赚钱一个10元
  • 网站开发逻辑关于华大18年专注seo服务网站制作应用开发
  • 牡丹江疫情最新政策厦门seo代理商
  • 海南网站建设哪家不错免费发布信息
  • 做非法集资资讯的网站西安网站建设公司十强
  • 广州营销型网站建设公司哪家靠谱百度收录查询方法
  • 网站建设标语辅导机构
  • 网站中的搜索框怎么做网站seo优化案例
  • 安监网站如何做紧急预案备案推广方案框架
  • 慈溪网站建设哪家好免费网页制作成品
  • 网站如何制作 优帮云会计培训机构排名前十
  • 云空间布置网站百度推广一天烧几千
  • 凡科做网站有什么用广州疫情最新动态
  • 如何搜名字搜到自己做的网站如何在百度上建立网站
  • 无锡网站建设选众鼎色盲
  • php网上商城系统seo信息优化
  • 电子商务网站开发平台如何免费注册网站平台
  • Wordpress漂亮免费主题seo算法是什么
  • 北京工作室网站建设百度seo关键词优化工具
  • 中国网站名二级域名网站查询入口
  • 建设的网站属于固定资产么百度公司招聘
  • 网站空间在哪里设计网站接单
  • 大同建设网站百度一下百度搜索网站
  • 网络游戏排行榜前十手游长沙网站seo排名