华为笔试
程序员文章站
2022-07-13 14:20:24
...
团建活动智能分组器
■**
题目描述
**
个公司做团建活动,排成1个M行N列的队形。左上角的同事编号为(0, 0),右下角的同事编号为(M-1, N-1)。为了打散队伍重新分组。从队列左上角同事开始从1开始报数,最外圈的同事按顺时针报数。外圈同事全部报完,内圈的同事按同样规则继续报数。个位数为7且十位数为奇数被挑选出来作为特战队员。请设计一个计算的方法,入参是两个大于等于10且小于等于1000的整数,M和N。请按报数顺序输出特战队员的编号列表(N2的维数组)非法输入请返回内容为空的数组。
请设计一个计算的方法, 入参是两个大于等于10且小于等1000的整数N和N。请按报数顺序输出特战队员的编号列表(N’2的二维数组)
非法输入请返回内容为空的数组。
输入描述:
入参是两个整数M和N,值范围为: [10,1000]。 单空格分格.格式为10
10
输出描述:
请按报数顺序输出特战队员的编号列表(N*2的二维数组)
非法输入请返回内容为空的数组。
输出样例: [[7,9], [1,1], [8,2],[7,51,[4,41]
import numpy as np
def bsm(m,n):
a=np.zeros((m,n))
p = 0
q = n - 1
s=m-1
t = 1
while p < q:
for i in range(p, q):
a[p,i] = t
t += 1
for i in range(p, q):
a[i,q] = t
t += 1
for i in range(s, p, -1):
a[s,i] = t
t += 1
for i in range(s, p, -1):
a[i,p] = t
t += 1
p += 1
q -= 1
s-=1
if q == p:
a[p,p] = t
return a
def sum(m,n):
num=list(range(1,m*n+1))
a=[]
for i in num:
if i%10==7 and int(i/10)%2==1:
a.append(i)
if a==[]:
print('无')
return a
def shuru():
a, b = list(input('请输入数组并空格隔开:').split())
a = int(a)
b = int(b)
return a, b
if __name__ == '__main__':
# 测试代码
a,b=shuru()
matrix = bsm(a,b)
a=sum(a,b)
print(matrix)
d=[]
for i in a:
c = []
a,b=list(np.where(matrix ==i))
c.append(a[0])
c.append(b[0])
d.append(c)
print(d)
还有不完整的,自己练习,大家如果有更好的让我瞅瞅呀,谢谢
上一篇: Delphi DBGridEh根据单元格内容改变某个单元格的背景颜色
下一篇: 华为笔试题
推荐阅读
-
华为mate30如何导出联系人到SIM卡的方法
-
麒麟980旗舰安排上了 8款华为荣耀手机升级EMUI 11/Magic UI 4.0
-
疑似华为Mate 30 Pro真机现身地铁:史上曲度最大屏幕、超高屏占比
-
继续去美化 华为MatePad Pro平板美国元件仅占2% 核心已国产化
-
华为Mate Xs上手:升级铰链 体验无短板
-
麒麟990 5G SoC、2K屏办公神器 华为MatePad Pro 5G丹霞橙图赏
-
中国联通提前曝光一大波5G新机:小米9S、华为Mate 30 5G来了
-
华为余承东:如果安卓不能用了 鸿蒙OS随时可用在手机上
-
1599元!华为全新8寸平板曝光:MT8768加持
-
伟创力激怒华为代价太大 全球第三大手机代工厂地位不保了