蓝桥杯之蛇形填数(Python和C++代码)
发布日期:2021-05-04 20:45:32 浏览次数:28 分类:技术文章

本文共 1136 字,大约阅读时间需要 3 分钟。

题目描述

在 n * n 方阵里填入 1, 2, …, n * n, 要求填成蛇形。例如 n = 4 时方阵为:

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

样例输入

3

样例输出

7 8 1

6 9 2
5 4 3

Python代码

while True:    n=int(input().strip())    ls=[]    for i in range(n):        ls.append(list(0 for i in range(n)))    x,y=0,n-1    t=ls[x][y]=1    while t
=0 and ls[x][y-1]==0: y-=1 t+=1 ls[x][y]=t while x-1>=0 and (ls[x-1][y]==0): x-=1 t+=1 ls[x][y]=t while y+1

C++代码

int n, t;    cin >> n;    int x, y;    x = 0, y = n - 1;    t = a[x][y] = 1;    while (t < n * n)    {
while (x + 1 < n && a[x + 1][y] == 0) {
a[++x][y] = ++t; } while (y - 1 >= 0 && a[x][y - 1] == 0) {
a[x][--y] = ++t; } while (x - 1 >= 0 && !a[x - 1][y]) {
a[--x][y] = ++t; } while (y + 1 < n && !a[x][y + 1]) {
a[x][++y] = ++t; } } for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << a[i][j] << "\t"; } cout << endl; }
上一篇:Python学习笔记
下一篇:递归的学习

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月01日 19时22分47秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章