#34857: [AC] C++ 解


130433@csc.pjhs.tyc.edu.tw (d4c)

學校 : 桃園縣立平鎮高級中學
編號 : 231090
來源 : [163.30.123.25]
最後登入時間 :
2023-09-19 08:48:43
c292. APCS2017-0304-3數字龍捲風 -- 2017年3月APCS | From: [101.137.40.137] | 發表日期 : 2023-04-21 20:39

#include <iostream>
using namespace std;
int main() {
 int N,d;      //設定正方形邊長,起始方向
 cin >> N;
 int a[N][N];
 cin >> d;
 for(int i=0;i<N;i++)
 {
     for(int j=0;j<N;j++)
     cin >> a[i][j]; //輸入數字 ,i j表示x y座標
 }
 int x=N/2,y=N/2; //設定中央項
 cout << a[y][x];
 for(int i=1;i<=N;i++) //規律是1 1,2 2,3 3,4 4....
 {
    if(i==N)
    break;
    for(int j=0;j<2;j++) //根據上面的註解 所以重複兩次
    {
        for(int l=0;l<i;l++) // 每走完一次轉彎
        {
        if(d==0)
        x--;
        else if(d==1)
        y--;
        else if(d==2)
        x++;
        else if(d==3)
        y++;
        cout << a[y][x];
        }
        d++;
        if(d>=4)
        d=0;
    }
 }
for(int i=0;i<N-1;i++) // 最後會多一小段,為N-1的長度
{
        if(d==0)
        x--;
        else if(d==1)
        y--;
        else if(d==2)
        x++;
        else if(d==3)
        y++;
        cout << a[y][x];
}
    return 0;
}

 
ZeroJudge Forum