蛇形方阵-只有代码
#include<iostream> #include<cstring> using namespace std; int main() { int a[100][100]={}, n, x, y, num=1, i=0; cin >> n; //memset(a, 0, sizeof(0)); x = 0, y = n-1; a[x][y] = num; while(num < n*n) { // 向下: while(x+1 < n && a[x+1][y] == 0) { num++; a[x+1][y] = num; i++; x++; } // x = 3, y = 3; // 向左: while(y-1 >= 0 && a[x][y-1]==0) { num++; a[x][y-1]=num; y--; i++; } // x = 3, y = 0; // 向上: while(x-1 >= 0 && a[x-1][y] == 0) { num++; a[x-1][y]=num; x--; i++; } // x = 0, y = 0; // 向右: while(y+1 < n && a[x][y+1]==0) { num++; a[x][y+1]=num; y++; i++; } //cout << x << " " << y << endl; if(i==n*n) break; } for(int i=0; i<=n-1; i++) { for(int j=0; j<=n-1; j++) { printf("%2d ", a[i][j]); } cout << endl; } return 0; }
#include<iostream> using namespace std; int main() { int a[100][100] = {}, n; // 输入 cin >> n; // 出发位置:第一行最后一列。 int x=0, y=n-1, num=1; a[x][y] = num; // 处理算法 while(num < n*n) { // 向下:x行数递增,y列数不变。 while(x+1 < n && a[x+1][y]==0) { num++; a[x+1][y] = num; x++; } // x=3 y=3 // 向左:x行不变,y列变小。 while(y-1 >= 0 && a[x][y-1]==0) { num++; a[x][y-1] = num; y--; } // x=3 y=0 // 向上:x行数变小,y列数不变。 while(x-1>=0 && a[x-1][y]==0) { num++; a[x-1][y] = num; x--; } // x=0 y=0 // 向右:x行数不变,y列数变大。 while(y+1<n && a[x][y+1]==0) { num++; a[x][y+1] = num; y++; } } // x=0 y=2 //cout << "x=" << x << " " << "y=" << y << endl; // 输出 for(int i=0; i<=n-1; i++) { for(int j=0; j<=n-1; j++) { printf("%2d ", a[i][j]); } cout << endl; } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现