#53727: C++ 比較簡潔的寫法


s290006@student.cysh.cy.edu.tw (風堇一生推)

學校 : 國立嘉義高級中學
編號 : 263344
來源 : [163.27.3.90]
最後登入時間 :
2025-10-03 13:06:32

用ci cj存四個方向

然後用v存每一次直走共走幾格

不需要做防護 因為不會出界

優雅 太優雅了(x

#include <bits/stdc++.h>

using namespace std;

 

int main(){

ios::sync_with_stdio(false);

cin.tie(nullptr);

 

int n,s,ci[4]={0,-1,0,1},cj[4]={-1,0,1,0};

cin>>n>>s;

int a[n][n];

for(int i=0;i<n;i++) for(int j=0;j<n;j++) cin>>a[i][j];

int x=(n-1)/2,y=x;

vector<int> v;

for(int i=1;i<n;i++){

v.push_back(i);

v.push_back(i);

}

v.push_back(n-1);

for(int i:v){

for(int j=0;j<i;j++){

cout<<a[x][y];

x+=ci[s];

y+=cj[s];

}

s=(s+1)%4;

}

cout<<a[x][y];

}