博客
关于我
紫书——蛇形填数
阅读量:340 次
发布时间:2019-03-04

本文共 711 字,大约阅读时间需要 2 分钟。

#include<iostream>#include<string.h>//#include<time.h>#define maxn 20using namespace std;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;   	}    	system("pause");    	return 0;}

蛇形矩阵,1的位置在右上角,先判断,再移动,如果越界就回来。
!a[x][y]是因为初始化数组为0,如果碰到已经填好的数字了就缩回去,
x,y满足小于等于n的条件,表示n行n列。
++tot,先加1,再赋值。

转载地址:http://cqdr.baihongyu.com/

你可能感兴趣的文章
【SE-02】多线程-02
查看>>
$set的使用(视图不能实时更新)
查看>>
一、硬件防火墙
查看>>
Javaweb jQuery功能练习
查看>>
余生,愿你能靠近那些正能量的人——
查看>>
初学QT
查看>>
IOC容器_Bean管理xml方式
查看>>
蓝桥杯入门练习题斐波那契数列
查看>>
(Java基础类库 )System类
查看>>
context:include-filter与exclude-filte控制扫描组件
查看>>
【SSL】1072砝码称重
查看>>
js数据结构--队列--常见操作
查看>>
JS数据结构--单向链表--常见操作
查看>>
JS数据结构--双向链表--常见操作
查看>>
全排列(深度优先搜索+递归)
查看>>
多项式插值法的Python程序
查看>>
vue.js常用指令及用法
查看>>
vuex的核心概念和运行机制
查看>>
SSLOJ1692 USACO 3.2 Magic Squares 魔板&P2730
查看>>
在Ubuntu上安装GCC编译器
查看>>