
蓝桥杯之蛇形填数(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; }
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月01日 19时22分47秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
base64编码的学习和理解
2019-03-03
将代码从windows移动linux上出现^M错误的解决方法
2019-03-03
AC自动机的使用案例
2019-03-03
git查看相对于最新的push改动内容
2019-03-03
vim匹配特定的行并删除
2019-03-03
读取excel文件错误
2019-03-03
傅里叶变换的初级理解三
2019-03-03
伟大的欧拉公式
2019-03-03
F1 score的意义
2019-03-03
画多个图及相关细节总结
2019-03-03