這道題的難點主要是控制邊界,觀察題目給的路徑可以看出,有兩個掃瞄的方向,斜向上與斜向下,我這裡用enu
menum
enum
型別變數儲存方向,初始點為(0,
0)(0,0)
(0,0
),方向為斜向上,先列印出訪問的點,再嘗試著根據當前掃瞄的方向前進,後面4
44個條件判斷語句分別控制掃瞄出錯及改正的策略。
/*
* @descripttion:
* @version:
* @author: idestro
* @date: 2020-03-19 22:40:55
* @lasteditors: idestro
* @lastedittime: 2020-03-20 09:51:12
*/#include
using
namespace std;
enum
direction;
intmain()
}// cnt記錄當前已經訪問點的個數,i,j代表位置,預設(0,0)
int cnt =
0, i =
0, j =0;
// 方向初始為斜向上
direction = up;
while
(cnt++
< n*n)
else
// 當碰到上邊界
if(i <
0&& j >0)
else
if(j == n)
direction = down;
continue;}
// 當碰到做邊界
if(i >
0&& j <0)
else
if(i == n)
direction = up;
continue;}
// 當碰到右邊界
if(i >=
0&& j == n)
// 當碰到下邊界
if(i == n && j >=0)
}return0;
}
201412 2 Z字形掃瞄
你好啊,我是努力奔跑的追夢人 我始終相信著未來,一分耕耘一分收穫。include using namespace std bool inarea int xl,int yd,int xr,int yu,int dstx,int dsty 判斷 dstx,dsty 是否在區域內 intmain els...
CCF 201412 2 Z字形掃瞄
ccf 201412 2 z字形掃瞄 第一次的思路做錯了嚶.1 include2 include3 using namespace std 4int arr 505 505 5 bool visit 505 505 6 const int dr 右0,左下1,下2,右上3 32 將每次回到第一行或最...
CCF刷題筆記
大學期間很多時間都在做低效率 無意義的事,現在打算通過刷題提高自己的程式設計能力,同時掌握一些資料結構 演算法的專業知識。時間安排 2020.11 ccf認證 衝200 300分 2021.1 ccf認證 衝300 350分 部落格更新 打算通過更新部落格來督促自己完成任務 很久沒有刷題了 從第一題...