Der Bewegungsbereich des Roboters Java -Version ist der spezifische Inhalt wie folgt
Auf dem Boden befindet sich ein Quadrat aus M -Zeilen und N -Säulen. Ein Roboter beginnt sich aus einem Raster mit den Koordinaten 0 und 0 zu bewegen und kann jeweils nur ein Raster nach links, rechts, obere und untere Richtungen bewegen, kann jedoch nicht mit der Summe der Ziffern der Zeilenkoordinaten und Spaltenkoordinaten größer als k eingeben. Wenn K beispielsweise 18 ist, kann der Roboter das Netz (35,37) eingeben, da 3+5+3+7 = 18. Es kann jedoch nicht das Quadrat (35,38) eingeben, da 3+5+3+8 = 19. Wie viele Netze kann der Roboter erreichen?
Problemlösung:
1. Stellen Sie zunächst fest, ob die aktuelle Position die Eintrittsbedingungen erfüllt. Wenn die Einstiegsbedingungen erfüllt sind, beurteilen Sie die vier Positionen weiter nach oben, unten, links und rechts (außer der Grenze). Wenn nicht erfüllt, bedeutet dies, dass die aktuelle Positionsauswahl falsch ist.
2. Deklarieren Sie bei jedem Versuch eine Reihe von Flaggen, um die besuchten Orte aufzuzeichnen.
3.. Es gibt drei Bedingungen für den Versuch, fortzufahren: Die Koordinaten sind in der Matrix legal, die Koordinaten erfüllen die Einstiegsbedingungen und die Koordinatenpositionen wurden nicht zugegriffen.
öffentliche Klasse Lösung {public int movingCount (int Schwelle, int Zeilen, int cols) {if (Schwelle <0 || Zeilen <= 0 || cols <= 0) {return 0; } int count = 0; boolean [] flag = neuer boolean [Zeilen*cols]; für (int i = 0; i <Zeilen*cols; i ++) {flag [i] = true; } count = bewegt (Schwelle, 0, 0, Zeilen, Cols, Flag); Rückgabezahl; } public int moving (int t, int row, int col, int zeilen, int cols, boolean [] flag) {int count = 0; if (isallow (t, row, col, ruhs, cols, flag)) {flag [row*cols+col] = false; count = 1+bewegend (t, row-1, col, ruhs, cols, flag)+bewegung (t, row, col-1, reien, cols, flags)+bewegung (t, row+1, col, reien, cols, fahne)+bewegungs (t, row, col+1, rows, cols, cols, flags); } return count; } // Berechnen Sie die Summe der Ziffern der Koordinaten und geben Sie das Vergleichsergebnis mit dem Schwellenwert public boolean isallow (int t, int row, int col, int Zeilen, int cols, boolean [] Flag) {if (row> zeilen || row || cols || cols+cols || cols || cols || cols || || zurück. } int sum = 0; char [] chs = (row+""). toarArray (); char [] chs1 = (col+""). toarArray (); für (char ch: chs) {sum += charakter.getnumericValue (ch); } für (char ch1: chs1) {sum += charakter.getnumericValue (ch1); } return sum <= t; }}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.