输入两个数字 行数和列数,回形打印出一个二维数组,大小按回形的方向依次递增。

如: 输入: 5 、4

输出: 
0   1   2   3 
13  14  15  4
12  19  16  5
11  18  17  6
10  9   8   7

你可以使用 Python 来实现这个需求。下面是代码实现:

def print_spiral(row, col):
    result = [[0 for _ in range(col)] for _ in range(row)]
    count = 0
    for i in range((row + 1) // 2):
        for j in range(i, col - i):
            result[i][j] = count
            count += 1
        for j in range(i + 1, row - i - 1):
            result[j][col - i - 1] = count
            count += 1
        for j in range(col - i - 1, i - 1, -1):
            result[row - i - 1][j] = count
            count += 1
        for j in range(row - i - 2, i, -1):
            result[j][i] = count
            count += 1
    return result

def main():
    row, col = 5, 4
    result = print_spiral(row, col)
    for i in range(row):
        for j in range(col):
            print("{:3d}".format(result[i][j]), end="  ")
        print()

if __name__ == '__main__':
    main()

运行结果如下:

0   1   2   3  
13  14  15  4  
12  19  16  5  
11  18  17  6  
10  9   8   7  

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐