Versi java rentang robot, konten spesifiknya adalah sebagai berikut
Ada persegi baris M dan n kolom di tanah. Sebuah robot mulai bergerak dari kisi -kisi dengan koordinat 0 dan 0, dan hanya dapat memindahkan satu kisi ke arah kiri, kanan, atas dan bawah pada satu waktu, tetapi tidak dapat memasukkan kisi -kisi dengan jumlah digit koordinat baris dan koordinat kolom lebih besar dari k. Misalnya, ketika k adalah 18, robot dapat memasukkan kisi (35,37), karena 3+5+3+7 = 18. Namun, tidak dapat memasukkan kuadrat (35,38), karena 3+5+3+8 = 19. Berapa banyak kisi yang dapat dicapai robot?
Solusi Masalah:
1. Pertama, tentukan apakah posisi saat ini memenuhi kondisi masuk. Jika kondisi masuk terpenuhi, terus menilai empat posisi di sekitarnya, ke bawah, kiri dan kanan (kecuali batas). Jika tidak puas, itu berarti bahwa pemilihan posisi saat ini salah.
2. Dalam setiap upaya, nyatakan serangkaian bendera untuk merekam lokasi yang telah dikunjungi.
3. Ada tiga kondisi untuk mencoba melanjutkan: koordinat legal dalam matriks, koordinat memenuhi persyaratan masuk, dan posisi koordinat belum diakses.
Solusi kelas publik {public int movingCount (int threshold, int rows, int cols) {if (threshold <0 || baris <= 0 || cols <= 0) {return 0; } int count = 0; boolean [] bendera = boolean baru [baris*cols]; untuk (int i = 0; i <baris*cols; i ++) {flag [i] = true; } count = moving (ambang batas, 0, 0, baris, cols, bendera); jumlah pengembalian; } public int moving (int t, int row, int col, int rows, int cols, boolean [] flag) {int count = 0; if (isAllow (t, row, col, rows, cols, flag)) {flag [baris*cols+col] = false; Hitung = 1+bergerak (t, baris-1, col, baris, cols, bendera)+bergerak (t, baris, col-1, baris, cols, flag)+bergerak (t, baris+1, col, baris, cols, bendera)+bergerak (t, baris, col+1, baris, cols, bendera); } jumlah pengembalian; } // Hitung jumlah digit koordinat dan kembalikan hasil perbandingan dengan ambang batas public boolean isallow (int t, int row, int col, int rows, int cols, boolean [] bendera) {if (row> roug | roug <0 || cols || col <0 || row*cols+col> rougs <0 || cols || col <0 || row*cols+col> rougs <0 || cols || col <0 || row*cols+col> rougs <0 || cols || col <0 || row*cols+col> rougs <0 || cols || col <0 || row*cols+cols+col> rougs <0 || cols || col <0 || row*cols+cols+col> rougs <0 || cols || col <0 || row*cols+cols+col> roug } int sum = 0; char [] chs = (baris+""). tochararray (); char [] chs1 = (col+""). tochararray (); untuk (char ch: chs) {sum += karakter.getNumericValue (ch); } untuk (char ch1: chs1) {sum += karakter.getNumericValue (ch1); } return sum <= t; }}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.