NYoj 33 蛇形填数
来源:互联网 发布:淘宝2017双十一 编辑:程序博客网 时间:2024/06/08 18:19
蛇形填数
时间限制: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
书上原题(算法竞赛入门经典(第二版)——刘汝佳)P10.该说的书上都说了,我感觉我还不太会,我会好好想想的,直接放代码了。明天我会在写一遍。
#include"cstdio"#include"cstring"#include"cmath"#include"algorithm"using namespace std; int main (){ int t; int i, j, k, m, p; int n; scanf("%d",&n); int a[105][105]; memset(a,0,sizeof(a)); a[0][n-1]=1; int tot=1; int x=0; int y=n-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(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%d ",a[i][j]); } printf("\n"); } return 0;}
说个小东西 。%d中间可以加很多东西,有的时候会见到%-d,中间的负号是左对齐的意思。正号反之。还有%5d,这个地方的5是说的位宽,也就是这个结果占五个位宽。还有%7.2f这种,%m.nf 中的n是强制截取n位有效数字(四舍五入),m是整个数据占据m子宽。我怕忘了这次刚好说一下。还有其他的再补充,就这样。
补充// %02d输出时候,是占两个字宽,不够两个字宽,用0补齐,对于有些时间输出的题目,这个小技巧,可以快速输出,不需要在判断。
阅读全文
0 0
- NYOJ 33 蛇形填数
- NYoj 33 蛇形填数
- NYOJ-33 蛇形填数
- NYOJ 33 蛇形填数
- NYOJ-蛇形填数-33
- NYOJ 蛇形填数 33
- NYOJ 33-蛇形填数
- NYOJ-33 蛇形填数
- NYOJ 33 蛇形填数
- NYOJ 33 蛇形填数
- NYOJ-33蛇形填数
- NYOJ 33 蛇形填数
- NYOJ-33-蛇形填数
- nyoj 33 蛇形填数
- nyoj 33 蛇形填数
- NYOJ-33 蛇形填数
- NYOJ 33 蛇形填数
- NYOJ 33 蛇形填数
- linux运维-bond
- AndroidStudio 2.2以及以上版本 或 Gradle 2.2以及以上 版本V2签名与打渠道包冲突
- C 语言的HelloWorld(printf用法详解)
- [leetcode]: 541. Reverse String II
- 三分法求凸性函数极大极小值
- NYoj 33 蛇形填数
- 剑指offer----字符流中第一个不重复的字符
- LeetCode 31. Next Permutation
- TUTORIAL: MEASURING REVERBERATION TIME
- 原码、反码、补码
- 开发Hive自定义UDF,生成16位时间
- java多线程二(synchronized与volatile)
- Yii2.0 依赖注入(DI)和依赖注入容器详解一
- 【复杂网络学习笔记】4:验证无标度网络的幂律分布特性