problem.php?id=1044
2016-08-18 21:38
513 查看
问题 1044. – 数圈
提交: 243 解决: 105
[提交][状态][讨论版]
7 8 9 10
6 1 2 11
5 4 3 12
16 15 14 13
1044: 数圈
时间限制: 1 Sec 内存限制: 128 MB提交: 243 解决: 105
[提交][状态][讨论版]
题目描述
以1为中心,用2,3,4, …, n, …, n*n的数字围绕着中心输出数圈, 如若n=4,则7 8 9 10
6 1 2 11
5 4 3 12
16 15 14 13
输入
一个整数n(1<=n<=10)输出
数圈矩阵样例输入
5
样例输出
21 22 23 24 25 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17 16 15 14 13
提示
来源
[提交][状态]解决方法:
以下是我写的代码。#include <iostream> #include <cmath> #include <cstdio> using namespace std; const int N=20; int main() { int n,i,j,tp,ts,tw,flag; cin>>n; int a ,cnt=1; for(i=0;i<N;i++) for(j=0;j<N;j++) a[i][j]=0; a[N/2][N/2]=1; i=N/2;j=N/2; while(cnt!=n*n) { tp=(int)sqrt(cnt); if(tp*tp==cnt)// 1,4,9,16这些值对应的坐标 { ts=cnt; tw=tp; if(tp%2!=0) //若为奇数,则向右移动 { a[i][j+1]=cnt+1; j=j+1; flag=4; } else//否则向左移动 { a[i][j-1]=cnt+1; j=j-1; flag=3; } } else if(ts+1==cnt)//若为上述点后的第一个点 { if(tw%2==0)//为偶数则向上移动 { a[i-1][j]=cnt+1; i=i-1; flag=1; } else//否则向下移动 { a[i+1][j]=cnt+1; i=i+1; flag=2; } } else if(cnt==(tw+1)*(tw+1)-tw)//若为靠近下一个平方点的四边顶点 { if((tw+1)%2==0)//若下一个平方点开方为偶数,则向左移动 { a[i][j-1]=cnt+1; j=j-1; flag=3; } else//否则向右移动 { a[i][j+1]=cnt+1; j=j+1; flag=4; } } else//处理非四周顶点情况 { if(flag==1)//若上一个点是向上移动,则继续向上移动 { a[i-1][j]=cnt+1; i=i-1; } else if(flag==2) //若上一个点是向下移动,则继续向下移动 { a[i+1][j]=cnt+1; i=i+1; } else if(flag==3)//若上一个点是向左移动,则继续向左移动 { a[i][j-1]=cnt+1; j=j-1; } else //若上一个点是向右移动,则继续向右移动 { a[i][j+1]=cnt+1; j=j+1; } } cnt++; } bool qp=false; for(i=0;i<N;i++) { if(qp) break; for(j=0;j<N;j++) if(a[i][j]!=0) { ts=i; tw=j; qp=true; break; } } for(i=0;i<n;i++) { for(j=0;j<n-1;j++) { cout<<a[ts+i][tw+j]<<" "; } cout<<a[ts+i][tw+n-1]<<endl; } return 0; }
相关文章推荐
- php .htaccess 防盗链
- php常用函数
- 四大组件之ContentProvider
- configure: error: xml2-config not found. Please check your libxml2 installation
- PHP 底层的运行机制与原理
- PHPMyAdmin: 无法登录 !!
- 对服务器的ftp端口进行修改
- 基于MTK 的 TP 驱动分析
- (四)PHP注释,运算符
- PHP爬取百度图片
- POST數組簡述
- yii2设置ActiveForm->dropDownList->prompt_val 真正支持下拉菜单默认值
- Bitmap类getPixels()详解
- phpMyAdmin 出现 ---- 缺少 mysqli 扩展,请检查 PHP 配置。
- 转: 原生API 播放 rstp
- FTP服务第一节
- 史上最佳 Mac+PhpStorm+XAMPP+Xdebug 集成开发和断点调试环境的配置
- thinkphp输出最后一条sql语句
- PHP上传文件
- php 代码规范