P5731 【深基5.习6】蛇形方阵 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

//为什么用动态二维数组   --->To play to user's input, but it's alright without using dynamical array as long as you don't initiate all of them as zero.
//动态二维数组怎么用(申明、删除) ---> To be formulated in a new essay, sooner or later.
#include<iostream>
#include<cstring>
#include<iomanip>
using namespace std;
int n,x,y,value;//y横向,x纵向
int main()
{
cin>>n;
int **a=new int*[n];
for (size_t i = 0; i < n; i++)
{
a[i]=new int[n];
memset(a[i],0,n*sizeof(int));
}
x=y=0;
value=a[0][0]=1;
while (value<n*n)
{
while (y+1<n&&!a[x][y+1])//向右
{ //y+1<n是为了不超过边界,a[x][y+1]==0是控制及时拐弯
a[x][++y]=++value;
}
while (x+1<n&&!a[x+1][y])//向下
{
a[++x][y]=++value;
}
while (y-1>=0&&!a[x][y-1])//向左
{
a[x][--y]=++value;
}
while (x-1>=0&&!a[x-1][y])//向上
{
a[--x][y]=++value;
}
}
for (size_t i = 0; i < n; i++)
{
for (size_t j = 0; j < n; j++)
{
cout<<setw(3)<<a[i][j];
}
cout<<endl;
}
for (size_t i = 0; i < n; i++)
{
delete[] a[i];
}
delete[] a; return 0;
}

最新文章

  1. 如何在VMware中安装Windows Phone SDK 8.0 (支持模拟器调试)
  2. 更新日志 - fir.im「高级统计」功能上线
  3. ACM 马拦过河卒(动态规划)
  4. How can I retrieve the remote git address of a repo?
  5. Js作用域链及变量作用域
  6. com.sun.crypto.provider.SunJCE
  7. Jquery小实例
  8. .NET 中使用 HttpWebResponse 时 Cookie 的读取
  9. 【转】morgan stanley 电面面经新鲜出炉
  10. JavaWeb核心技术学习 - 1.从JDBC说起
  11. BZOJ_2820_YY的GCD_莫比乌斯反演
  12. js获取url 中的值,并跳转相应页面
  13. 2018-2019-2 网络对抗技术 20165311 Exp2 后门原理与实践
  14. 迭代器使用【阿里JAVA开发手册】
  15. A. On The Way to Lucky Plaza 概率 乘法逆元
  16. 从零开始学 Web 之 移动Web(二)JD移动端网页,移动触屏事件
  17. 【转】SOA架构设计经验分享—架构、职责、数据一致性
  18. Linux网络管理-相关笔记【自用】
  19. yii源码二 -- interfaces
  20. 【LeetCode371】 Sum of Two Integers

热门文章

  1. 浅显直白的Python深拷贝与浅拷贝区别说明
  2. 功放世界web新手区
  3. python实现移动二级目录下的文件到一级目录
  4. select省市联动+对应经销商、自定义箭头
  5. 获取微信小程序列表渲染 index
  6. 基于C++的OpenGL 10 之光照贴图
  7. godis实战
  8. url 获取 值
  9. 数据每三位增加一个逗号(即千分符) js
  10. 01_windows、linux互ping不通解决方式