数学规律 | HJ35 蛇形矩阵

# 最优解(每一行的一个元素为等差数列的累加值)
n = int(input().strip())
for i in range(1,n+1) :
    for j in range(i,n+1) :
        print(int(((j+j**2)/2)-i+1),end = ' ')
    print()

# 我的代码
while True:
    try:
        n = int(input())
        # nums = [i for i in range(1, n+1)]
        res = [[0 for _ in range(n)]for _ in range(n)]
        cnt = 1
        for i in range(n):
            tmp_i, tmp_j = i, 0
            while tmp_i >= 0 and tmp_j < n:
                res[tmp_i][tmp_j] = cnt
                cnt += 1
                tmp_i -= 1
                tmp_j += 1
        for row in res:
            print(' '.join([str(col) for col in row if col!=0]))
    except:
        break

用时:30min

华为笔试刷题 文章被收录于专栏

高质量题: 1~40:HJ16,HJ22,HJ24,HJ26,HJ27,HJ28,HJ35,HJ37,HJ39; 40~80:HJ41,HJ42,HJ43,HJ44,HJ48,HJ50,HJ52,HJ53,HJ57,HJ61,HJ63,HJ64,HJ70,HJ71,HJ74,HJ77; 80~108:HJ82,HJ85,HJ88,HJ89,HJ93,HJ95,HJ98,HJ103,HJ107

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务