蛇形填数
来源:互联网 发布:洛阳达内大数据培训 编辑:程序博客网 时间:2024/05/17 01:32
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
思路:题意都能理解,如果不清楚怎么写,一定是不知道怎么去控制,用四个变量控制四个边界,用二维数组来存数。
#include<iostream>#define maxn 110int s[maxn][maxn];using namespace std;int main(){ int i,j,m,n,left,right,up,down;//用left控制左边界,right控制右边界,up控制上边界,down控制下边界 cin>>n; left=0; right=n+1; up=0; down=n+1; m=1; while(1) { if(left<right-1)//当右边界大于左边界,则开始填充右竖列的数,从上往下 { for(i=up+1;i<down;i++) { s[i][right-1]=m++; } right--; } else break; if(down-1>up)//当下边界大于上边界,则开始填充下横排的数,从右往左 { for(i=right-1;i>left;i--) { s[down-1][i]=m++; } down--; } else break; if(left+1<right)//同理 { for(i=down-1;i>up;i--) { s[i][left+1]=m++; } left++; } else break; if(up+1<down)//同理 { for(i=left+1;i<right;i++) { s[up+1][i]=m++; } up++; } else break; } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(j==1)//每行第一个数前面没有空格 { cout<<s[i][j]; } else cout<<" "<<s[i][j]; } cout<<endl; } return 0;}
阅读全文
0 0
- 蛇形填数
- 算法:蛇形填数
- 蛇形填数
- 蛇形填数
- 蛇形填数
- 蛇形填数问题
- 蛇形填数
- C++蛇形填数
- 蛇形填数
- 蛇形填 数
- 蛇形填数
- NYOJ - 蛇形填数
- 蛇形填数
- 各种蛇形填数
- 蛇形填数
- 蛇形填数
- ACM-蛇形填数
- 蛇形填数
- Java设计模式(三)——建造者模式
- 表示数字
- 06章总结
- 安卓 OpenGL ES 2.0 完全入门(一):基本概念和 hello world
- Webpack打包原理
- 蛇形填数
- ubuntu14中文显示乱码的问题
- UIImageview 拉伸
- leetcode 13. Roman to Integer
- LIst(“”) 长度为1 ?????
- Java内存相关知识整理
- 6. 用冒泡法实现对10个整数按从小到大的顺序排序输出
- 固定U盘盘符原理
- Android Volley的使用(三)Volley中如何使用https