題目:
地上有乙個m行n列的方格。乙個機械人從座標(0,0)的格仔開始移動,它每次可以向上、下、左、右移動乙個格仔,但不能進入進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格(37,35),因為3+7+3+5 =18.但它不能進入方格(35,38),因為3+5+3+8=19.請問機械人能夠到達多少個格仔?
測試用例:
1.格仔全部都在範圍內;
2.格仔中的部分在範圍內;
3.特殊輸入(格仔都不在範圍內,k為負數)
解題思路:
機械人從座標(0,0)開始移動。當它進入座標(i,j)的矩陣時,通過檢測(check)座標的位數和來判斷機械人是否能夠進入。如果機械人能夠進入座標為(i,j)的格仔,則繼續判斷是否能夠進入與之相連的4個格仔(i,j-1)、(i,j+1)、(i-1,j)和(i+1,j)。因此,我們可以使用回溯演算法來進行計算。
程式**:
moving.c:
#include "moving.h"
//運動函式
int getdigitsum(int number)
return sum;
}int check(int threshold,int rows,int cols,int row,int col,int * visited)
顯示結果:
機械人運動範圍
題目 地上有乙個m行和n列的方格。乙個機械人從座標0,0的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 35,37 因為3 5 3 7 18。但是,它不能進入方格 35,38 因為3 5 3 8 1...
機械人運動範圍
地上有乙個m行和n列的方格。乙個機械人從座標0,0的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 35,37 因為3 5 3 7 18。但是,它不能進入方格 35,38 因為3 5 3 8 19。請...
機械人的運動範圍
題目 地上有乙個m行和n列的方格。乙個機械人從座標0,0的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 35,37 因為3 5 3 7 18。但是,它不能進入方格 35,38 因為3 5 3 8 1...