所以我应该初始化一个10x10矩阵并用不同的模式填充它,例如:
........................
........................
... ... ... ... ... ...
... ... ... ... ... ...
.. .. .. .. .. ..
.. .. .. .. .. ..
. . . . . .
. . . . . .
我将如何控制次数。字符出现在每个单元格中。我知道我可以遍历矩阵,在下一个偶数行后,我可以减少次数。角色出现但我该怎么做呢。
答案 0 :(得分:0)
感谢您对此问题的更新。这里有一些代码,我相信你正在寻找的东西。
public static String printDots(int numDots)
{
String dots = "";
for(int i = 0; i < numDots; i++)
{
dots += ".";
}
return dots;
}
public static void main(String[] args)
{
String[][] matrix = new String[10][10];
int numDots = 4;
for (int i = 0; i < matrix.length; i++)
{
for(int j = 0; j < matrix[i].length; j++)
{
matrix[i][j] = printDots(numDots);
}
if(i%2 != 0)
numDots--;
}
for(int i = 0; i < matrix.length; i++)
{
for(int j= 0; j < matrix[i].length; j++)
System.out.println(matrix[i][j]);
}
}
}
答案 1 :(得分:0)
根据数组/矩阵的性质,您可能希望使用循环。在您的问题中,您可以使用一个循环遍历矩阵的行。要填充列,您可以使用另一个循环。某些伪代码可能看起来像
for (int i = 0; i < matrix.Rows; i++) //standard indexing loop
var pattern = determinePrintingPattern(row)
print(pattern)
特别是在你的问题中,看起来点的打印发生在6组4中,每个偶数行减少点数。所以
function returnPattern determinePrintingPattern(int row) //might look like pseudocoded
for 6 iterations
print 4 - row/2 dots //integer division is desirable and will truncate (drop the decimal)
答案 2 :(得分:0)
解决问题。
编写一个方法,创建一个长度为length
的字符串,其中dots
点正确定位在其中,即具有如下签名:
String dotty(int length, int dots) {
// your code here
}
让它工作,然后编写一个方法来创建这些字符串的数组:
String[] dottyArray(int length, int dots, int size) {
String[] result = new String[size];
Arrays.fill(result, dotty(length, dots);
return result;
}
然后创建一个循环来调用该方法来填充2D数组:
String[][] dottyGrid(int length, int columns, int rows) {
String[][] result = new String[rows][];
for (int row = 0; row < rows; row++)
result[row] = dottyArray(length, (rows - row / 2) / 2, columns);
return result;
}
一个小&#34;技巧&#34;是整数除法截断了小数部分,它整齐地使点数逐步增加。