这实际上是一个面试问题。我必须使用 Java 打印以下内容:
9
9 8 9
9 8 7 8 9
9 8 7 6 7 8 9
. . .
. . .
在面试期间,我写了一段令人尴尬的代码,但它仍然有效 - 使用一个外循环,两个内循环(一个用于递减序列,一个用于递增序列!)和大量变量。其中一个变量是每行的长度。
面试官让我试着用
只有一个外环和一个内环
没有行长度变量。
注:看了答案后,我认为面试官并不是真的要说第二个条件。他可能只是想让我简化我的代码,而第二点就从他嘴里冒出来了。
所以,后来回到家,我到达了这个:
int rowCnt = 5;
for(int i = 1; i <= rowCnt; i++)
{
int val = 9;
int delta = -1;
int rowLen = i * 2 - 1;
for(int j = 1; j <= rowLen; j++)
{
System.out.print(val + " ");
val += delta;
if(j >= rowLen / 2) delta = 1;
}
System.out.println();
}
在这里,我只使用了一个内部循环。我正在使用一个delta
值来确定是增加还是减少。对于每一行,我将当前索引与行的中点进行比较并更改增量。
我满足了第一个条件——只有一个内循环。但是如果不使用行长,我就无法做到这一点。
我们如何在不知道行长的情况下打印它?
很多答案都是可以接受的,但我必须选择一个,并选择一个对我来说最容易理解的。