ロボットの動きの範囲 - 安全プランを証明します

パブリック クラスMoveCount {
     公共 のint(MoveCount INT K、INT M、INT {N-)
         ブール [] []内のフラグ= 新しい新しい ブール[M] [N-];
         int型 COUNT = MoveCountCore(K、M、N - 、0,0 、のフラグ);
         戻りCOUNT; 
    } 

    プライベート INT MoveCountCore(int型 K、INT M、INT N-、INT I、INT J、ブール[] []内のフラグ){
         // 復帰条件は、0を満たしていない
        IF(I <0 || J <0 || J> = N || I> = M ||和(String.valueOf(I))+ SUM(String.valueOf(J))> K ||フラグ[i]は[J] == trueに){
             戻り 0 ; 
        } 
        フラグに[I] [J] = trueに;
         // 条件の残りの4つの正方形を算出する場合が成立していると➕1 
        リターン 1 + MoveCountCore(K、M、N - 、I 1 +、J、内のフラグ)+ MoveCountCore(K、M、N- ,. 1-I、J、内のフラグ)+ 
                MoveCountCore(K、M、N - 、I、J -1のフラグ)+ MoveCountCore(K、M、N - 、 I、J + 1 フラグに、); 
    } 

    / * 
    各デジタル数の合計を算出
     * / 
    プライベート INT 和(文字列S){
         INT = 0合計をためINTI <s.length(); iが0 = I ++ ){ 
            合計 + = s.charAt(I) - '0' 
        } 
        戻り値の和。
    } 
    パブリック 静的 ボイドメイン(文字列[]引数){ 

    } 
}

 

おすすめ

転載: www.cnblogs.com/nlw-blog/p/12404833.html