问题陈述
给您一个多层机架,其形式为 m 行 n 列矩阵。每个细胞都被红色药丸(用 r 标记)、蓝色药丸(用 b 标记)或细菌(用 x 标记)占据。红色药丸可以杀死水平、垂直和对角方向的相邻细菌(如果有),而蓝色药丸只能杀死水平和垂直方向的相邻细菌(如果有)。最初这些药片是无效的。一旦活跃,它们就可以作用于相邻的细菌。一旦药丸被激活,您需要找到机架中剩余细菌的数量。
m = 行 n = 列 , test = 迭代次数
r = 红色药丸,
x = 细菌
条件是:
r = 红色药丸可以在水平、垂直和对角线方向杀死相邻的细菌。
我需要找到剩余的细菌。
我的(不完整)解决方案是 - 我创建了一个接受字符串的二维数组(arr1),然后将该数组元素转换为整数,即 0 和 1(r = 0 和 x = 1)并存储在另一个二维数组(arr2)中。现在我只能计算细菌总数,但我想找到剩余的细菌。
这是我的代码
import java.util.Scanner;
import java.*;
public class Pills {
public static void main(String args[])
{
// initialize here.
int row, col, i, j, k, test;
String arr[][] = new String[10][10];
int arr2[][] = new int[10][10];
Scanner scan = new Scanner(System.in);
System.out.println("Enter number of tests :");
test = scan.nextInt();
for(k=0;k<test;k++)
{
//enter row and column for array.
System.out.println(" ");
row = scan.nextInt();
System.out.println(" ");
col = scan.nextInt();
// enter array elements.
System.out.println(" ");
for(i=0; i<row; i++)
{
for(j=0; j<col; j++)
{
arr[i][j] = scan.next();
if(arr[i][j].equals("r"))
{
arr2[i][j]=0;
}
else {
arr2[i][j]=1;
}
}
}
// the 2D array is here.
System.out.print("\n");
for(i=0; i<row; i++)
{
for(j=0; j<col; j++)
{
System.out.print(arr[i][j]+ " ");
}
System.out.println();
}
System.out.print("\n");
int sum = 0;
for ( i=0; i < arr2.length; i++)
{
for (j=0; j < arr2[i].length; j++)
{
sum = sum + arr2[i][j];
}
}
System.out.println("Total Germs : "+sum);
}
}
}
我需要帮助寻找剩余的细菌。