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 }
复制代码

 

posted @   -刘-j-x-  阅读(178)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示