蛇形填数
来源:互联网 发布:sql三表联合查询 编辑:程序博客网 时间:2024/05/11 22:04
/*输入: 1234567输出: 1 4 1 3 2 7 8 1 6 9 2 5 4 3 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 13 14 15 16 1 12 23 24 17 2 11 22 25 18 3 10 21 20 19 4 9 8 7 6 5 16 17 18 19 20 1 15 30 31 32 21 2 14 29 36 33 22 3 13 28 35 34 23 4 12 27 26 25 24 5 11 10 9 8 7 6 19 20 21 22 23 24 1 18 37 38 39 40 25 2 17 36 47 48 41 26 3 16 35 46 49 42 27 4 15 34 45 44 43 28 5 14 33 32 31 30 29 6 13 12 11 10 9 8 7*///#define LOCAL#include <stdio.h>#include <string.h> const int MAXN=500;int main(){#ifdef LOCALfreopen("in.txt","r",stdin); freopen("out.txt","w",stdout);#endifint n,t=0;int b[MAXN][MAXN],m,c=1;int i,j;while(scanf("%d",&m)!=EOF){memset(b,0,sizeof(b));i=0;j=m-1;c=b[i][j]=1;while(c<m*m){while(i+1<m && !b[i+1][j]) b[++i][j]=++c;while(j-1>=0 && !b[i][j-1]) b[i][--j]=++c;while(i-1>=0 && !b[i-1][j]) b[--i][j]=++c;while(j+1<m && !b[i][j+1]) b[i][++j]=++c;/*如果为c++,同样循环条件下,最后一个会为0; while(i+1<m && !b[i+1][j]) b[++i][j]=c++;while(j-1>=0 && !b[i][j-1]) b[i][--j]=c++;while(i-1>=0 && !b[i-1][j]) b[--i][j]=c++;while(j+1<m && !b[i][j+1]) b[i][++j]=c++;*/}for(i=0;i<m;i++){for(j=0;j<m;j++){printf("%5d",b[i][j]);}printf("\n");}}return 0;}
0 0
- 蛇形填数
- 算法:蛇形填数
- 蛇形填数
- 蛇形填数
- 蛇形填数
- 蛇形填数问题
- 蛇形填数
- C++蛇形填数
- 蛇形填数
- 蛇形填 数
- 蛇形填数
- NYOJ - 蛇形填数
- 蛇形填数
- 各种蛇形填数
- 蛇形填数
- 蛇形填数
- ACM-蛇形填数
- 蛇形填数
- poj 3565
- 了分手的控股骄傲IT业我人气太卡拉是打飞机
- ubuntu12.04下安装配置tomcat6.0.35
- poj2828(线段树)
- UVA11137- Ingenuous Cubrency
- 蛇形填数
- Qt中使用DOM对XML文件的标签属性进行修改
- 大视野1458--士兵占领(网络流)
- uva 101 The Blocks Problem(模拟栈)
- codeforce 132c C. Logo Turtle
- Vision引擎 游戏对象中镜头介绍
- POJ 1753 Flip game
- TQ2440构建根文件系统遇到的问题
- A - Red and Black(3.2.1)