#38521: 使用C的解題


HuangNO1 (雷姆醬)

學校 : 中南大学
編號 : 60967
來源 : [103.156.242.195]
最後登入時間 :
2023-12-03 15:57:20
d626. 小畫家真好用 -- jack1 | From: [103.156.242.195] | 發表日期 : 2023-12-03 02:38

這題需要思考到使用遞歸將+以外連起來的區塊都變成+,掌握好邊界值

像是如下關鍵偽代碼

void 著色(char **N, int len, int row, int col) {
    if (檢查row和col在N的邊長0-len的範圍值內)
    {
        if (如果N[row][col] == '-')
        {
            把N[row][col] 變成 '+';
        }
        
        if (row + 1 < len && N[row + 1][col] != '+')
        {
            color(N, len, row+1, col);
        }
        if (row - 1 > 0 && N[row - 1][col] != '+')
        {
            color(N, len, row-1, col);
        }
        if (col + 1 < len && N[row][col + 1] != '+')
        {
            color(N, len, row, col+1);
        }
        if (col - 1 > 0 && N[row][col - 1] != '+')
        {
            color(N, len, row, col-1);
        }
    }
}

 

 

 
ZeroJudge Forum