此填法的規律如下:
1. 設 a 是正整數,若 n 能整除 a,則區間 [ a+1, a+n ] 必在同一斜排上
斜排定義為右上左下,依題目規則所填在同一斜排皆屬之
例: n = 5,[ 1, 5 ]、[ 6, 10 ]、[ 11, 15 ]、[ 16, 20 ]、[ 21, 25 ] 各組皆在各自的斜排上
2. 依規則所述,若右上已有數字,則往下填,此時填的數即是下一組的第一個數,可推得
上一組第一個數往左一格往下兩格即為這組第一個數
例: n = 5,每組第一個數如下,雖然 11 位置: 第 5 列第 1 行,往左下變 第 7 列第 0 行
列數超過減 5、行數不足加 5 ,即為 16 的位置: 第 2 列第 5 行
x x 1 x x
x x x x 16
x 6 x x x
x x x 21 x
11 x x x x
3. 每組第 k 個數,恰為自第一個數開始往右上算的第 k 個位置 (計算包含第一個數)
例: n = 5,以 11 ~ 15 為例,15 位置恰為從 11 開始算起第 5 個
Sol : 以 1 的位置當起點,用規律算 i、j,答案瞬間即出
PS : 用陣列索引的方式算 i、j,最後再加一,比較好算
PS2 : 上面規律變程式碼,應該不難吧,就不說細節了