La version Java de l'amplitude de mouvement du robot, le contenu spécifique est le suivant
Il y a un carré de rangées M et des colonnes N au sol. Un robot commence à se déplacer d'une grille avec des coordonnées 0 et 0, et ne peut déplacer qu'une seule grille vers la gauche, droite, supérieure et inférieure à la fois, mais ne peut pas entrer dans une grille avec la somme des chiffres des coordonnées de ligne et des coordonnées de colonne supérieures à K. Par exemple, lorsque K est 18, le robot peut entrer dans la grille (35,37), car 3 + 5 + 3 + 7 = 18. Cependant, il ne peut pas entrer sur le carré (35,38), parce que 3 + 5 + 3 + 8 = 19. Combien de grilles le robot peut-il atteindre?
Solution problématique:
1. Tout d'abord, déterminez si la position actuelle remplit les conditions d'entrée. Si les conditions d'entrée sont remplies, continuez à juger les quatre positions autour de lui, en bas, à gauche et à droite (sauf la frontière). S'il n'est pas satisfait, cela signifie que la sélection de position actuelle est incorrecte.
2. Dans chaque tentative, déclarez un tableau de drapeaux pour enregistrer les emplacements visités.
3. Il y a trois conditions pour essayer de continuer: les coordonnées sont légales dans la matrice, les coordonnées remplissent les conditions d'entrée et les positions de coordonnées n'ont pas été accessibles.
Solution de classe publique {public int mobasteCount (int threshold, introws, int cols) {if (threshold <0 || lignes <= 0 || cols <= 0) {return 0; } int count = 0; booléen [] drapeau = new boolean [lignes * cols]; pour (int i = 0; i <lignes * cols; i ++) {flag [i] = true; } count = mobile (seuil, 0, 0, lignes, cols, drapeau); Return Count; } public int Moving (int t, int row, int col, int. int, int cols, boolean [] drapeau) {int count = 0; if (isallow (t, row, col, lignes, cols, flag)) {flag [row * cols + col] = false; count = 1 + mobile (t, row-1, col, lignes, cols, drapeau) + mobile (t, ligne, col-1, lignes, cols, drapeau) + mobile (t, ligne + 1, col, lignes, cols, drapeau) + mobile (t, ligne, col + 1, lignes, cols, drapeau); } Return Count; } // Calculez la somme des chiffres des coordonnées et renvoyez le résultat de la comparaison avec le seuil public booléen isallow (int t, int, int col, int, int, int cols, booléen [] drapeau) {if (row> lignes || row <0 || cole> cols || colé FAUX; } int sum = 0; char [] chs = (row + ""). toCharArray (); char [] chs1 = (col + ""). toCharArray (); pour (char ch: chs) {sum + = caractères.getNumericValue (ch); } pour (char ch1: chs1) {sum + = caractères.getNumericValue (ch1); } Retour Sum <= T; }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.