蛇形填数n*n
2016-06-27 19:23
197 查看
蛇形填数
时间限制:3000 ms | 内存限制:65535 KB难度:3
描述在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
输入直接输入方陈的维数,即n的值。(n<=100)
输出输出结果是蛇形方陈。
样例输入
3
样例输出
7 8 1 6 9 2 5 4 3
原题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=33
#include <stdio.h> #include <string.h> #define MAX 100 int a[MAX][MAX]; int main() { int i,j,n,tot=0; scanf("%d",&n); memset(a,0,sizeof(a));//给数组初始化为0 tot=a[i=0][j=n-1]=1; while(tot<n*n) { while(i+1<n && !a[i+1][j]) //先从右上向下移动 控制下边界 a[++i][j]=++tot; while(j-1>=0 && !a[i][j-1]) //控制左边界 a[i][--j]=++tot; while(i-1>=0 && !a[i-1][j]) //控制上边界 a[--i][j]=++tot; while(j+1<n && !a[i][j+1]) //控制又边界 a[i][++j]=++tot; } for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%d\t",a[i][j]); printf("\n"); } return 0; }
相关文章推荐
- bash数组中的位移和切片以及变量的间接引用
- Graham's Scan法求凸包
- Spring WebSocket初探2 (Spring WebSocket入门教程)<转>
- Sql日期时间格式转换
- android菜鸟的学习求职之路
- 网络是否连接的判断
- 树的层序遍历
- android布局太深导致的 java.lang.StackOverflowError
- Spring WebSocket初探1 (Spring WebSocket入门教程)<转>
- Qt安卓JNI交互之(2) C++调用JAVA对象的动态方法(1)
- 模型评估与选择
- PAT(乙级)1018. 锤子剪刀布
- 网络编程笔记(2)---TCP 服务器与客户端编写流程
- 2016.5.28【初中部 NOIP普及组 】模拟赛
- Android vector 标签 pathData 详解
- 天梯赛 树的遍历 玩转二叉树 (前中求后 中后求前 层次遍历 镜面反转)
- jQuery学习之:Validation表单验证插件
- svn用户添加、密码修改、删除
- xml大项目,增删改查
- 日志系统参数根据环境参数进行个性化配置