A versão Java de movimento do robô, o conteúdo específico é o seguinte
Há um quadrado de linhas M e N colunas no chão. Um robô começa a se mover de uma grade com coordenadas 0 e 0, e só pode mover uma grade para as direções esquerda, direita, superior e inferior por vez, mas não pode entrar em uma grade com a soma dos dígitos das coordenadas da linha e as coordenadas de coluna maiores que k. Por exemplo, quando K tem 18 anos, o robô pode entrar na grade (35,37), porque 3+5+3+7 = 18. No entanto, ele não pode entrar no quadrado (35,38), porque 3+5+3+8 = 19. Quantas grades podem alcançar o robô?
Solução problemática:
1. Primeiro, determine se a posição atual atende às condições de entrada. Se as condições de entrada forem atendidas, continue julgando as quatro posições ao redor, para baixo, para a esquerda e direita (exceto o limite). Se não estiver satisfeito, significa que a seleção atual de posição está incorreta.
2. Em cada tentativa, declare uma variedade de bandeiras para registrar os locais que foram visitados.
3. Existem três condições para tentar continuar: as coordenadas são legais na matriz, as coordenadas atendem às condições de entrada e as posições de coordenadas não foram acessadas.
classe pública Solução {public int MovingCount (INT limiar, int linhas, int cols) {if (limiar <0 || linhas <= 0 || cols <= 0) {return 0; } int count = 0; Boolean [] sinalizador = novo booleano [linhas*cols]; for (int i = 0; i <linhas*cols; i ++) {sinalizador [i] = true; } count = Moving (limiar, 0, 0, linhas, cols, sinalizador); contagem de retorno; } public int moving (int t, int linha, int col, int linhas, int cols, sinalizador booleano []) {int count = 0; if (isallow (t, linha, col, linhas, cols, sinalizador)) {sinalizador [linha*cols+col] = false; contagem = 1+movendo (t, linha-1, col, linhas, cols, bandeira)+movimento (t, linha, col-1, linhas, cols, bandeira)+movimento (t, linha+1, cols, linhas, cols, sinalizador)+movimento (t, linha, col+1, linhas, cols, sinalizador); } contagem de retorno; } // Calcule a soma dos dígitos das coordenadas e retorne o resultado da comparação com o limiar de booleano } int sum = 0; char [] chs = (linha+""). toCharArray (); char [] chs1 = (col+""). toCharArray (); for (char ch: chs) {sum += caractere.getNumericValue (CH); } para (char ch1: chs1) {sum += caractere.getNumericValue (CH1); } retornar soma <= t; }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.