3 回答
TA贡献1773条经验 获得超3个赞
我不会展示如何修改您的代码以按水平和垂直顺序打印值序列,而是向您展示一个更通用的实现,用于简单地打印这样的数字,因此答案对其他人也更普遍有用。
我会让你把算法应用到你的代码中。
public static void printHorizontal(int min, int max, int cols) {
for (int i = min; i <= max; i++) {
boolean last = (i == max || (i - min + 1) % cols == 0);
System.out.printf("%3d", i);
if (last)
System.out.println();
else
System.out.print(" ");
}
}
public static void printVertical(int min, int max, int cols) {
int rows = (max - min) / cols + 1;
for (int row = 0; row < rows; row++) {
for (int col = 0, i = min + row; col < cols && i <= max; col++, i += rows) {
boolean last = (col == cols - 1 || i > max - rows);
System.out.printf("%3d", i);
if (last)
System.out.println();
else
System.out.print(" ");
}
}
}
测试
printHorizontal(5, 17, 5);
printVertical(5, 17, 5);
输出
5 6 7 8 9
10 11 12 13 14
15 16 17
5 8 11 14 17
6 9 12 15
7 10 13 16
TA贡献1854条经验 获得超8个赞
使用System.out.printf(String, ....)它会变得更容易 - 您可以按如下方式指定项目:
System.out.printf("%c %3d %03o %3x %c %3d %03o %x %c %3d %03o %3x\n",
'a', (int)'a', (int)'a', (int)'a',
'b', (int)'b', (int)'b', (int)'b',
'c', (int)'c', (int)'c', (int)'c');
这让你
a 97 141 61 b 98 142 62 c 99 143 63
TA贡献1864条经验 获得超2个赞
打印由制表符分隔的值。取自您的代码片段
标题:
System.out.print(" " + "\t\tDEC " + "\t\tOct " + "\t\tHex");
++counter;
}
价值观:
System.out.print(" " + (char) x + "\t\t"
+ x + "\t\t" + oct + "\t\t" + hex);
++counter;
}
添加回答
举报