蛇形填数
来源:互联网 发布:java反序列化是什么 编辑:程序博客网 时间:2024/05/16 14:10
#include <stdio.h>#include <stdlib.h>#define MAXN 102#define WALL -1#define BLANK 0int map[MAXN][MAXN];int x,y,n;void init(void){ int i,j; scanf("%d",&n); x=1,y=n; for(i=0;i<MAXN;i++) { for(j=0;j<MAXN;j++) { map[i][j]=WALL; } } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { map[i][j]=BLANK; } }}void nextstep(void){ if(map[x-1][y]==BLANK&&map[x+1][y]!=BLANK&&map[x][y+1]!=BLANK&&map[x][y-1]!=BLANK) //只能向上 { x--; } else if(map[x-1][y]!=BLANK&&map[x+1][y]==BLANK&&map[x][y+1]!=BLANK&&map[x][y-1]!=BLANK)//只能向上 { x++; } else if(map[x-1][y]!=BLANK&&map[x+1][y]!=BLANK&&map[x][y+1]!=BLANK&&map[x][y-1]==BLANK)//只能向左 { y--; } else if(map[x-1][y]!=BLANK&&map[x+1][y]!=BLANK&&map[x][y+1]==BLANK&&map[x][y-1]!=BLANK)//只能向右 { y++; } else if(map[x+1][y]==BLANK&&map[x][y-1]==BLANK)//向左或向下,则向下 { x++; } else if(map[x-1][y]==BLANK&&map[x][y-1]==BLANK)//向左或向上,则向左 { y--; } else if(map[x-1][y]==BLANK&&map[x][y+1]==BLANK)//向右或向上,则向上 { x--; } else if(map[x+1][y]==BLANK&&map[x][y+1]==BLANK)//向右或向下,则向右 { y++; }}int main(){ init(); int step,i,j; step=1; while(step<=n*n) { map[x][y]=step; nextstep(); step++; } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { printf("%d ",map[i][j]); } printf("\n"); } return 0;}
0 0
- 蛇形填数
- 算法:蛇形填数
- 蛇形填数
- 蛇形填数
- 蛇形填数
- 蛇形填数问题
- 蛇形填数
- C++蛇形填数
- 蛇形填数
- 蛇形填 数
- 蛇形填数
- NYOJ - 蛇形填数
- 蛇形填数
- 各种蛇形填数
- 蛇形填数
- 蛇形填数
- ACM-蛇形填数
- 蛇形填数
- 压缩感知进阶——有关稀疏矩阵
- 通过alpha变量实现图片透明度渐变(仍然用到JS缓冲运动框架)
- 支持向量机通俗导论(理解SVM的三层境界)
- 软件卸载不彻底 注册表清理 修改权限
- 学习总结: Algorithms: Design and Analysis, Part2
- 蛇形填数
- 现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。
- "=="和equals方法究竟有什么区别
- 从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
- ACM二进制运算技巧
- 大端和小端存储区别
- firefox报错 关于 JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
- ubuntu 10.04下的配置tftp服务器
- HDU4355--Party All the Time,HDU3714--Error Curvese三分法