Download presentation
Presentation is loading. Please wait.
1
TOI推廣計畫 解題-座位安排
2
題 目 每週都要幫學生們更換座位,遵循的方式是雙數週時所有人 往右橫移一個座位,原本最右邊的人則換到最左邊,而單數
吳老師相信新的學期就該有新的氣象,於是決定這學期 每週都要幫學生們更換座位,遵循的方式是雙數週時所有人 往右橫移一個座位,原本最右邊的人則換到最左邊,而單數 週則是所有人往後移一個座位,原本最後一排的人便換到第 一排。 開學第一週老師安排的座位為從座號1號開始由左至右、 由前到後按照號碼坐,第二週才開始換座位,請你幫忙預測 到第N週時教室座位的編排為何? 題 目
3
題 目 右移 第一週 第二週 右移 後移 第三週 第四週 1 2 3 4 5 6 7 8 9 10 11 12 4 1 2 3 8 5 6
4
輸入格式 輸出格式 4 5 4 總共輸入三個正整數, 前兩個數R、C分別代表座位的列數與行數,
第三個數N則代表到了第幾週 ( 1 ≤ R、C、N ≤ 100 )。 輸出格式 輸出一個R×C的矩陣,代表第N週時教室的座位安排, 每一列的座號間為一個空格,無多餘換行。 輸入範例 輸出範例 4 5 4
5
解題重點: 計算總移動次數 重製陣列 輸出 Icon made by from
6
1.計算右移和後移的次數 第一週不換座位,N由總週數-1變成換座位的次數 若總次數為偶數次, 則右移與後移的 若總次數為奇數次,
則右移比後移的 次數多一次 ( int在算除法時會無條件捨去小數位, 例:N=5→右移:5/2+1=3次,後移:5/2=2次)
7
2.完成陣列(右移) 第一層for : 總共要右移的次數 第二層for : 遍歷每一列 第三層for : 從最右邊開始,
每次將一個數用他左邊的數字取代
8
2.完成陣列(右移) . 先暫存 最右邊的號碼 將前面的數字 全部往右推一格 將暫存的數字 放回最左邊 1 2 3 4 5 6 7 8 9
10 11 12 4 1 2 3 5 6 7 8 9 10 11 12 2.完成陣列(右移) 1 2 3 5 6 7 8 9 10 11 12 4 1 2 3 5 6 7 9 10 11 12 先暫存 最右邊的號碼 . 將前面的數字 全部往右推一格 1 2 3 5 6 7 8 9 10 11 12 將暫存的數字 放回最左邊 4 1 2 3 5 6 7 8 9 10 11 12
9
2.完成陣列(後移) . 先暫存 最後面的號碼 將前面的數字 全部往後推一格 將暫存的數字 放回最前面 1 2 3 4 5 6 7 8 9
10 11 12 2.完成陣列(後移) 9 2 3 4 1 6 7 8 5 10 11 12 1 2 3 4 5 6 7 8 10 11 12 9 2 3 4 1 6 7 8 5 11 12 先暫存 最後面的號碼 1 2 3 4 6 7 8 5 10 11 12 . 將前面的數字 全部往後推一格 將暫存的數字 放回最前面 9 2 3 4 1 6 7 8 5 10 11 12
10
3.輸出陣列 如果不是當列的最後一個字才加空格 如果不是最後一列才加換行
11
參 考 解 答
Similar presentations