您的位置:首页 > 编程语言 > C语言/C++

noip2015神奇的幻方

2017-09-23 19:41 197 查看
模拟……题目花式看错……调完后码的和书上一样emmmm……框架还是记住了……和数学分类讨论一样

注意不能直接用x和y,要用中间变量nx,ny

#include<iostream>
using namespace std;
int n,m,a[40][40],x,y;
int main(){
cin>>n;
a[1][n/2+1]=1;
x=1,y=n/2+1;
m=n*n;
for(int i=2;i<=m;++i)
{
int nx,ny;
if(x==1&&y!=n)
{
nx=n;
ny=y+1;
}
else if(x!=1&&y==n)
{
nx=x-1;
ny=1;
}
else if(x==1&&y==n)//看清题目啊我去
{
nx=x+1;
ny=y;
}
else if(x!=1&&y!=n)
{
if(!a[x-1][y+1])
nx=x-1,ny=y+1;
else
nx=x+1,ny=y;
}
a[nx][ny]=i;
x=nx;
y=ny;
}
for(int i=1;i<=n;++i)
{
for(int j=1;j<n;++j)
{
cout<<a[i][j]<<" ";
}
cout<<a[i]
<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ noip 模拟