- 标签:模拟,枚举,暴力,NOIp提高组,2015
- 知识点:数组应用案例
-
题目:
- AC代码:
#include<iostream> using namespace std; int main(){ int n,a[39][39]={0},i,j,k; cin>>n; a[0][n/2]=1; i=0;j=n/2; for(k=2;k<=n*n;k++){ if(i==0&&j<n-1){a[n-1][++j]=k;i=n-1;} else if(i>0&&j==n-1){a[--i][0]=k;j=0;} else if(i==0&&j==n-1){a[++i][n-1]=k;} else if(i>0&&j<n-1&&a[i-1][j+1]==0){a[--i][++j]=k;} else if(i>0&&j<n-1&&a[i-1][j+1]!=0){a[++i][j]=k;} } for(i=0;i<n;i++){ for(j=0;j<n;j++) cout<<a[i][j]<<" "; cout<<endl; } return 0; }
- 注意的问题:模拟时要细心,行列序号写正确来;if判断里等于是“==”,基本就OK啦。
洛谷【入门4】数组-P2615 神奇的幻方
最新推荐文章于 2024-01-28 17:40:39 发布