【发布时间】:2018-04-07 02:29:55
【问题描述】:
对于我的课程,我们必须编写一个程序来接受用户输入并打印出许多斐波那契数列。我设法做到了,但我的教授希望它的字段宽度为 15 并且向左对齐。出于某种原因,我不明白,它只是不会给我正确的输出。这是我所拥有的:
boolean valid = false;
while (valid == false) {
System.out.println("Please enter a valid number (between: 1 - 50):");
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
if (n < 1) {
System.out.println("The number entered " + n + " is not valid");
}
else if (n > 50) {
System.out.println("The number entered " + n + " is not valid");
}
else if (n >= 1 || n <= 50) {
valid = true;
//System.out.printf("%15s", "1 ");
int a = 0;
int b = 1;
for (int i = 1; i <= n; i++) {
int nextNumber = a + b;
if (i%5 != 0) {
System.out.printf("%15s", nextNumber + " ");
}
else {
System.out.printf("%15s", nextNumber + " " + "\n");
}
a = b;
b = nextNumber;
输出是右对齐的,但是当我将其设为“%-15s”时,这些值并没有全部正确排列,它仍然是右对齐的。另外,注释掉的那一行是因为我无法得到打印出第一行的序列。
【问题讨论】:
-
如果你问的只是文本对齐,那么这个问题中关于斐波那契数列的所有内容都是无关紧要的
-
问题似乎不是指定问题的重复,OP知道
-修饰符。
标签: java