當前位置:首頁 » 編程軟體 » 走方格編程

走方格編程

發布時間: 2023-11-24 05:12:13

⑴ C語言題(方格取數)

可以用遞歸的方式計算。

編程題跳格子(遞歸演算法,一定!!),謝謝

遞歸啊。。。遞歸函數大概就是:

int dfs(int x, int y) {
if (x > 4 || x < 1 || y > 5 || y < 1) return 0;
if (x == 1 && y == 1) return 1;
return dfs(x - 1, y) + dfs(x, y - 1);
}

主函數裡面輸出dfs(4, 5)的值就可以了。

⑶ 求用C語言編程實現一個國際象棋 馬怎麼走的問題

C語言我不會,下面這個是易語言的,希望你能借鑒一下:
熟悉國際象棋的人都知道,馬在某個方格,可以在一步內到達的不同位置最多有8個。如圖所示:
#4#3#
5#0#2
6###1
#7#8#
(1)對馬走的方法可以設定一個順序,如當前位置在棋盤的(i,j)方格,下一個可能的位置依次為(i+2,j+1),(i+1,j+2),(i-1,j+2),(i-2,j+1),(i-2,j-1),(i-1,j-2),(i+1,j-2),(i+2,j-1),實際可以走的位置很明顯僅僅限於還未走過的和不越出邊界的那些位置。

(2)這里我們定義馬在一步內實際可以走的位置數為馬在當前位置的出口數,此外,為便於程序的統一處理,這里引入兩個數組「行變化數組」和 「列變化數組」,分別儲存8種可能走法對馬當前所在位置的橫縱坐標的增量。

(3)本題用貪心法策略求解。 當馬處於某一位置時,其選擇下一位置的准則為:從馬當前位置所允許走的位置中,選擇出口數最少的哪個位置。如馬的當前位置只有3個出口,它們的出口數分別為4,2,3,則程序就選擇出口數為2的那個出口。 演算法簡單描述,馬從棋盤第一行第一列位置開始出發;預設著法選擇順序控制變數「方法編號」為1;
{
循環判斷首()
模擬棋盤數組初始化為0;
行號=起始行號;列號=起始列號;
計次循環首(63,當前遍歷步數)
如果(馬當前位置沒有出口)
返回(-1)
否則 行號按返回方法改變;列號按返回方法改變。
在棋盤相對位置記錄為第幾步驟;
如果(找到解)
輸出模擬棋盤數組;
終止循環;
否則 方法編號=方法編號+1;
循環判斷尾(沒有找到解)
}

上述演算法在整個找解的過程一直向前,所以能非常快地找到解。但是對於某些開始位置,實際上有解可程序第一次找不到解,則程序只要變換8中可能出口的順序,就能找到解。考慮到這種變換8種方法的情況,程序引用「方法編號「用於控制8種可能走法的順序。開始為1時不能找到解,就讓"方法編號"加1,重新找解。

熱點內容
蘋果怎麼打開壓縮文件 發布:2024-11-17 18:13:42 瀏覽:206
海南聯通寬頻密碼是什麼 發布:2024-11-17 17:58:56 瀏覽:627
android簽名工具 發布:2024-11-17 17:43:05 瀏覽:575
酒店酒管軟體伺服器ip段 發布:2024-11-17 17:34:10 瀏覽:917
關系資料庫關鍵字 發布:2024-11-17 17:20:12 瀏覽:308
微信腳本添加好友 發布:2024-11-17 17:19:59 瀏覽:567
不支持ftpovertls 發布:2024-11-17 17:15:05 瀏覽:230
騰訊下載視頻加密 發布:2024-11-17 17:14:32 瀏覽:902
手機站源碼下載 發布:2024-11-17 17:12:17 瀏覽:148
root密碼忘記了怎麼辦 發布:2024-11-17 17:08:08 瀏覽:142