Bootstrap

华为OD机试统一考试D卷C卷 - 螺旋数字矩阵(C++ Java JavaScript Python C语言)

华为OD机考:统一考试 D卷 + C卷 + B卷 +A卷

真题目录:华为OD机考机试 真题目录(C卷 + D卷 + B卷 + A卷) + 考点说明

题目描述

疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法:
给出数字个数n和行数m(0 < n ≤ 999,0 < m ≤ 999),从左上角的1开始,按照顺时针螺旋向内写方式,依次写出2,3…n,最终形成一个m行矩阵。
小明对这个矩阵有些要求:

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

输入描述

输入一行,两个整数,空格隔开,依次表示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 1
;