看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《harristime (瀚宇)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : Dev C++ : 程式碼(Code):(請善用置底文網頁, 記得排版) : 小弟想做一個題目,輸入任意數字後,會輸出像這樣 : EX: input 3 : 3 3 3 3 3 : 3 2 2 2 3 : 3 2 1 2 3 : 3 2 2 2 3 : 3 3 3 3 3 : 但在使用兩個for迴圈之後,開始用if else 去一一比對每個數值 : 還是想不到個好方法... 很希望能夠找出邏輯去解答 : 煩請各位高手指導一下 : 謝謝各位!! 如何在每個field都只尋訪一次。 將圖形十字切開。 Y part 1 | part 2 ---------+---------- X part 3 | part 4 只需要做 part 1。 part 2 為對於 Y 的 part 1 的鏡射。 part 3 + part 4 為對於 X 的 part 1 + part 2 的鏡射。 part 1的做法:  3 向右延伸都是3  向  下 延 2 向右延伸都是2 伸 向 都 下 是 延 3 伸 都 是 2 同理如1,同理如N。 對於Y的鏡射:V[i][(n * 2 - 1) - j - 1] = V[i][j]; 對於X的鏡射:V[(n * 2 - 1) - i - 1][j] = V[i][j]; 解畢。 Bleed -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.113.80
ledia:for(i=0~2*n-1) for(j=0~2*n-1) 02/26 18:25
ledia: print 1+max(i-n,j-n,n-i,n-j) 02/26 18:25