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

华为机考真题 -- 螺旋数字矩阵

题目描述:

疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法:给出数字 个数 n 和行数 m(0 < n ≤ 999,0 < m ≤ 999),从左上角的 1 开始,按照顺时针螺旋向内写方式,依次写出 2,3...n,最终形成一个 m 行矩阵。小明对这个矩阵有些要求:
1.每行数字的个数一样多
2.列的数量尽可能少
3.填充数字时优先填充外部
4.数字不够时,使用单个*号占位

输入描述:

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


输出描述:

符合要求的唯一矩阵

示例1:

输入
9 4


输出
1 2 3
* * 4
9 * 5
8 7 6
说明:9 个数字写成 4 行,最少需要 3 列

示例2:

输入
3 5


输出
1
2
3
*
*
说明:3 个数字写 5 行,只有一列,数字不够用*号填充

示例3:

输入
120 7


输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 19
45 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 63 20
44 83 114 115 116 117 118 119 120 * * * * * * 99 64 21
43 82 113 112 111 110 109 108 107 106 105 104 103 102 101 100 65 22
42 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 23
41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24

C++源码:

#include <iostream>
#include <vector>
#include <string>
using namespace std;void fillSpiralMatrix(int n, int m) {int column = (n + m - 1) / m;vector<vector<string>> mapGame(m, vector<string>(column, "*"));vector<int> dx = { 0, 1, 0, -1 }, dy = { 1, 0, -1, 0 };int directX = 0, directY = 0, dir = 0;for (int i = 1; i <= n; ++i) { mapGame[directX][directY] = to_string(i);if (i == n)break;while (true) { int nx = directX + dx[dir], ny = directY + dy[dir];if (nx < 0 || nx >= m || ny < 0 || ny >= column || mapGame[nx][ny] != "*") {dir = (dir + 1) % 4;}else {directX = nx;directY = ny;break;}}}int i = 0;while (i < m) {int j = 0;while (j < column) {cout << mapGame[i][j] << " ";++j;}cout << endl;++i;}
}signed main() {int n, m;cin >> n >> m;fillSpiralMatrix(n, m);system("pause");return 0;
}

http://www.lryc.cn/news/397168.html

相关文章:

  • 防御笔记第四天(持续更新)
  • HUAWEI VRRP 实验
  • 领取serv00免费虚拟主机
  • 云开发技术的壁纸小程序源码,无需服务期无需域名
  • 基于Python的哔哩哔哩数据分析系统设计实现过程,技术使用flask、MySQL、echarts,前端使用Layui
  • 顺序结构 ( 四 ) —— 标准数据类型 【互三互三】
  • 科普文:jvm笔记
  • springboot对象参数赋值变化
  • 树形结构的一种便捷实现方案
  • 探索AI数字人的开源解决方案
  • 科普文:深入理解负载均衡(四层负载均衡、七层负载均衡)
  • 华为模拟器ensp中USG6000V防火墙web界面使用
  • 使用Python绘制气泡图
  • 政安晨:【Keras机器学习示例演绎】(五十四)—— 使用神经决策森林进行分类
  • 洞察消费者心理:Transformer模型在消费者行为分析的创新应用
  • 如何安全使用代理ip
  • 机器学习——LR、‌GBDT、‌SVM、‌CNN、‌DNN、‌RNN、‌Word2Vec等模型的原理和应用
  • 揭秘SQL Server数据库选项:性能与行为的调控者
  • 【排序 - 选择排序优化版(利用堆排序)】
  • PHP编程开发工具有哪些?
  • 火柴棒图python绘画
  • Nginx七层(应用层)反向代理:UWSGI代理uwsgi_pass篇
  • Effective C++笔记之二十一:One Definition Rule(ODR)
  • 探索未来:Transformer模型在智能环境监测的革命性应用
  • Nginx中文URL请求404
  • 33. 动量法(Momentum)介绍
  • Python | Leetcode Python题解之第228题汇总区间
  • 物联网应用,了解一点 WWAN全球网络标准
  • 如何指定多块GPU卡进行训练-数据并行
  • RK3568笔记三十三: helloworld 驱动测试