【发布时间】:2018-05-09 08:43:35
【问题描述】:
我正在努力构建一种算法来打印急需的模式。 代码如下:
public static void printPatternH(int size)
{
for (int row = 1; row <= size; row++)
{
for (int col = 1; col <= 2*size; col++)
{
if (col > size + row - 1) {
continue;
}
if (col <= size) {
System.out.print((row + col >= size + 1 ? (row + col)%size : " ") + " ");
}
else {
System.out.print((row + col >= size + 1 ? (row + size)%col : " ") + " ");
}
}
System.out.println();
}
}
我知道如果size 是 9,那么中间的最后一个数字将是 0,就像 (row + size)%col = 0,但是我想不出在不更改其余值的情况下修改它的方法。
【问题讨论】:
-
所以你想打印“9”而不是“0”?
-
(row + col)%size->(row + col - 1) % size + 1 -
@saka1029,这就是答案。小心张贴:)
-
@AgelKoh 是的,没错,来自 saka1029 的解决方案满足了我的查询 :) 谢谢