Problem H: 蛇形填阵
来源:互联网 发布:淘宝网时尚女发型师装 编辑:程序博客网 时间:2024/04/28 02:21
Problem H: 蛇形填阵
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1001 Solved: 467
[Submit][Status][Web Board]
Description
将1~n*n填入一个n*n的矩阵中,并要求成为蛇形。蛇形即是从右上角开始向下,向左,向上,向右,循环填入数字。
比如n=5时矩阵为:
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
Input
输入有多行,每行为一个整数n(1<=n<=50),每组答案用空行隔开。
Output
输出一个n*n的矩阵,n行n列每个数字用一个空格隔开,不能有多余空格。
Sample Input
5
Sample Output
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
#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 1000int hang,lie,n,i,j,a[N][N];int main(){ int k = 0; memset(a,0,sizeof(a)); while(scanf("%d",&n) != EOF) { if((k++) != 0) printf("\n"); int shu=1,ZL=0,YL=0,SH=0,XH=0,v=0; hang = 0; lie = n-1; while(shu <= n*n) { //down while(hang < n-XH) { a[hang][lie]=shu; hang++; shu++; } hang--; YL++; lie--; //left while(lie >= ZL) { a[hang][lie]=shu; lie--; shu++; } lie++; hang--; XH++; //up while(hang >= SH) { a[hang][lie]=shu; shu++; hang--; } hang++; ZL++; lie++; //right while(lie < n-YL) { a[hang][lie]=shu; shu++; lie++; } lie--; hang++; SH++; v++; } for(hang = 0; hang < n; hang++) { for(lie = 0; lie < n-1; lie++) { printf("%d ",a[hang][lie]); } printf("%d",a[hang][lie]); printf("\n"); } } return 0;} /************************************************************** Problem: 1184 User: 201401061013 Language: C Result: Accepted Time:16 ms Memory:4652 kb****************************************************************/
0 0
- Problem H: 蛇形填阵
- 蛇形填数
- 算法:蛇形填数
- 蛇形填数
- 蛇形填数
- 蛇形填数
- 蛇形填数问题
- 蛇形填数
- C++蛇形填数
- 蛇形填数
- 蛇形填 数
- 蛇形填数
- NYOJ - 蛇形填数
- 蛇形填数
- 各种蛇形填数
- 蛇形填数
- 蛇形填数
- ACM-蛇形填数
- HDFS 的API 封装成 class Scala操作
- 为什么ListView.setOnItemClickListener、setOnCreateContextMenuListener会无效
- 最大子序列和
- 小学生计算机辅助教学系统
- java 根据经纬度 坐标 计算两点之间的距离
- Problem H: 蛇形填阵
- java初入
- C++统计英语句子中各个单词出现的次数
- LEETCODE: Merge k Sorted Lists
- 反射
- Problem G: 动态的字符串排序
- 小马哥--高仿米3刷机 k3c td版 6582芯片 详细拆机图 主板与开机图 k3系列版本很多 警惕
- Spring 分布式事务整合Jtom-(东行渡)
- 排名