public static void process(int first, int last, int size) { if (! (first < last && last < size)) { throw new IllegalArgumentException("invalid input"); } for (int rowSize = size; rowSize > 0 ; rowSize--) { int pre = first++; for (int i = 0; i < rowSize; i++) { if (i == 0) { System.out.print(myMod(pre, last) + " "); continue; } int next = pre + size - i + 1; System.out.print(myMod(next, last) + " "); pre = next; } System.out.println(); } }
private static int myMod(int i, int last) { int result = i % last; if (result == 0) { result = last; } return result; } 调用时:process(3, 5, 8)
public static void process(int first, int last, int size) {
if (! (first < last && last < size)) {
throw new IllegalArgumentException("invalid input");
}
for (int rowSize = size; rowSize > 0 ; rowSize--) {
int pre = first++;
for (int i = 0; i < rowSize; i++) {
if (i == 0) {
System.out.print(myMod(pre, last) + " ");
continue;
}
int next = pre + size - i + 1;
System.out.print(myMod(next, last) + " ");
pre = next;
}
System.out.println();
}
}
private static int myMod(int i, int last) {
int result = i % last;
if (result == 0) {
result = last;
}
return result;
}
调用时:process(3, 5, 8)