蛇形填数

具体思路就是按照蛇形的顺序填数,一个大循环内有4个小循环,
依次为:
从上到下,
从右到左,
从下到上,
从左到右。
判断条件为,在小循环内是否越界,以及该格是否填过数(一开始需要把所有格置为0)

//蛇形填数
#include<iostream>
#include<string.h>
using namespace std;
#define maxn 20
int a[maxn][maxn];
int main(){
    int n,x,y,tot=0;
    cin>>n;
    memset(a,0,sizeof(a));
    tot = a[x=0][y=n-1]=1;
    while(tot<n*n){
        while(x+1<n && !a[x+1][y])
            a[++x][y]=++tot;
        while(y-1>=0 && !a[x][y-1])
            a[x][--y]=++tot;
        while(x-1>=0 && !a[x-1][y])
            a[--x][y]=++tot;
        while(y+1<n && !a[x][y+1])
            a[x][++y]=++tot;
    }
//输出
    for(x=0;x<n;x++){
        for(y=0;y<n;y++)
            cout<<a[x][y]<<" ";
        cout<<endl;
    }
    
}


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 10,564评论 0 13
  • 陈氏太极拳老架一路讲义 前言 写给喜爱太极拳的武术朋友们 中华武术,源远流长,今虽门派繁多,实一脉相承。太极拳以它...
    阿德乐阅读 6,299评论 0 12
  • 自从 Go 官方从去年推出 1.11 之后,增加新的依赖管理模块并且更加易于管理项目中所需要的模块。模块是存储在文...
    _fishman阅读 172评论 0 1
  • 社交和沟通能力, 不仅决定一个人所能抵达的层次和格局, 还决定一个人能否幸福地度过一生。 作者|李小墨 来源|深夜...
    三九公卿阅读 328评论 0 0
  • 今天周末,不用交作业,感觉轻松多了。 但日更要坚持。 上个星期在农贸市场买了一只甲鱼,因为买了其他菜,钱包里只剩下...
    素面朝人海阅读 145评论 0 0

友情链接更多精彩内容