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