code:https://github.com/kerong2002/kerong_zerojudge/blob/main/e462%20%E9%96%83%E9%9B%BB%E7%9F%A9%E9%99%A3.c
我的想法是因為矩陣想法是(x,y)
(0,0)(1,0)(2,0)
(0,1)(1,1)(2,1)
(0,2)(1,2)(2,2)
那你把x+y加起來你會得到
0 1 2
1 2 3
2 3 4 的矩陣
那很簡單了,你只要掃瞄雙層迴圈5次
for(int y=0;y<n;y++){
for(int x=0;x<n;x++){
所以是2*n-1
那你要兩個變數,一個是run從0開始(x+y的和),一個計數cnt=1
那當run%2==0 你要做的事是list[x][y]=cnt++;(x+y和是偶數,往右上)
而run%2==1 你要做的事是list[y][x]=cnt++;(x+y和是奇數,往左下)