2045:【例5.13】蛇形填数
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 int n; 5 cin>>n; 6 int a[n][n],i=0,j=n-1,t=1; 7 memset(a,0,sizeof(a)); 8 a[i][j]=1; 9 while(t!=n*n){ 10 while(a[i+1][j]==0&&i+1<n){ 11 a[++i][j]=++t; 12 } 13 while(a[i][j-1]==0&&j-1>=0){ 14 a[i][--j]=++t; 15 } 16 while(a[i-1][j]==0&&i-1>=0){ 17 a[--i][j]=++t; 18 } 19 while(a[i][j+1]==0&&j+1<n){ 20 a[i][++j]=++t; 21 } 22 } 23 for(int i=0;i<n;i++){ 24 for(int j=0;j<n;j++){ 25 cout<<a[i][j]<<" "; 26 } 27 cout<<endl; 28 } 29 }
1 #include <iostream> 2 using namespace std; 3 int main(){ 4 int n; 5 int f=0; 6 int i=1; 7 cin>>n; 8 int x=n,y=1; 9 int a[n+1][n+1]={0}; 10 while(i!=n*n+1){ 11 a[y][x]=i; 12 if(f==0){//下↓ 13 y+=1; 14 }else if(f==1){//← 15 x-=1; 16 }else if(f==2){//↑ 17 y-=1; 18 }else if(f==3){//→ 19 x+=1; 20 } 21 if(((x==n && y==n) || (x==1 && y==n) || (x==1 && y==1) || (x==n && y==1))){ 22 f++; 23 f%=4; 24 }else if((f==0 && a[y+1][x]!=0) || (f==1 && a[y][x-1]!=0) || (f==2 && a[y-1][x]!=0) || (f==3 && a[y][x+1]!=0)){ 25 f++; 26 f%=4; 27 } 28 i++; 29 } 30 for(int i=1;i<=n;i++){ 31 for(int j=1;j<=n;j++){ 32 cout<<a[i][j]<<" "; 33 } 34 cout<<endl; 35 } 36 return 0; 37 38 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具