【发布时间】:2012-12-18 16:12:46
【问题描述】:
我用一个循环打印了这个图案:
*
**
***
****
*****
String s = "";
for (i = 1; i <= n; ++i) {
s += "*";
System.out.println(s);
}
现在我想如何只使用一个循环来打印以下模式。
1)
*
* *
* * *
* * * *
* * * * *
2)
* * * * *
* * * *
* * *
* *
*
3)
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
以及仅使用一个循环的其他类似模式,我已经使用多个循环完成了所有这些。
【问题讨论】:
-
那么您认为您需要做什么?如何将两个循环合二为一?例如循环 0..N-1 { 循环 0..M-1 } 和循环 0..N*M-1 有什么区别。他们都绕着相同的次数。 ;)
-
为什么是单循环这个具体要求?
-
@RohitJain 我很确定这些问题只是作为一个学术练习。 ;)
-
我想要优化。两个循环的时间复杂度为 O(n^2),而只有一个循环的时间复杂度为 O(n)。并且 O(n)
-
是的,在现代商业信息系统中,打印三角形图案可能会占用大量资源。您需要降低它的复杂性是可以理解的。这将使您在竞争对手之前获得很多优势。
标签: java loops for-loop design-patterns