Range of motion of the robot - to prove safety offer

public class MoveCount {
    public int MoveCount(int k ,int m,int n){
        boolean[][] flag=new boolean[m][n];
        int count=MoveCountCore(k,m,n,0,0,flag);
        return count;
    }

    private int MoveCountCore(int k, int m, int n, int i, int j, boolean[][] flag) {
        //不满足条件时 返回0
        if(i<0||j<0||j>=n||i>=m||sum(String.valueOf(i))+sum(String.valueOf(j)) > k ||flag[i][j]==true) {
            return 0;
        }
        In Flag [I] [J] = to true ;
         // case of calculating the remaining four squares of the condition is satisfied and ➕1 
        return . 1 + MoveCountCore (K, m, n-,. 1 + I, J, In Flag) + MoveCountCore (K, m, n-,. 1-I, J, In Flag) + 
                MoveCountCore (K, m, n-, I, J -1, In Flag) + MoveCountCore (K, m, n-, I, J +. 1 , In Flag);
    }

    /*
    Calculating a sum of each digital number
     */
    private int sum(String s){
        int sum=0;
        for(int i = 0;i<s.length();i++){
            sum += s.charAt(i)-'0';
        }
        return sum;
    }
    public static void main(String[] args) {

    }
}

 

Guess you like

Origin www.cnblogs.com/nlw-blog/p/12404833.html