首页 > 代码库 > 【模拟】神奇的幻方
【模拟】神奇的幻方
NOIP提高组D1T1,看了好多次了题了。但是一拖再拖,导致拖到今天才AC掉题目。
这种题目好像真的没有什么可以说的,就是细节问题。
首先数组必须初始化为0,其次的话要记得continue。
#include <iostream>using namespace std;int a[41][41],n;int main(){ std::ios::sync_with_stdio(false); cin>>n; int y= n/2+1,x=1; a[x][y]=1; for(int i=2;i <= n*n;++i){ if(x==1 && y != n) { x=n; ++y; a[x][y]=i; continue; } if(y==n && x!= 1 ){ --x; y=1; a[x][y]=i; continue; } if(x==1 && y==n){ ++x; a[x][y]=i; continue; } if(x!=1 && y != n){ if(a[x-1][y+1] == 0){ --x; ++y; a[x][y]=i; continue; } else{ ++x; a[x][y]=i; continue; } } } for(int i = 1;i<=n;i++) for(int j=1;j<=n;j++){ cout<<a[i][j]; if(j != n) cout<<" "; else cout<<endl; } return 0;}
【模拟】神奇的幻方
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。