2014-01-27 74 views
-2

我试图嵌套的for循环(JAVA)用来打印出以下几点:使用嵌套的for循环来打印数字(JAVA)

331 
330 
322 
311 
300 
222 
111 

,我遇到了一些麻烦。到目前为止,我有:

for(int a = 3; a >=0; a--) 
{ 
    for(int b = 3; b>=0; b--) 
    { 
     for(int c = 2; c>=0; c--) 
     { 
      System.out.println(a + " "+ b +" "+ c); 
     } 
    } 
} 

但打印出更多的东西是这样的:

3 3 2 
3 3 1 
3 3 0 
3 2 2 
3 2 1 
3 2 0 
3 1 2 
3 1 1 
3 1 0 
3 0 2 
3 0 1 
3 0 0 
2 3 2 
2 3 1 
2 3 0 
2 2 2 
2 2 1 
2 2 0 
2 1 2 

什么是错我的代码?我怎样才能打印出第一个序列,而不是第二个?我很确定它与中间循环有关,但我确实不确定。

谢谢!

+7

似乎没有一个可辨别的模式,以您所需的输出。 – GriffeyDog

+0

你是什么意思的第一序列 –

+0

你能准确地描述你的要求。从这个输出我们不能确定产生这个输出的东西。这个输出是否完成?或者可以有更多的元素?你的解决方案比你的要求多。 –

回答

0

如果您嵌套for循环,除非您根据外部循环中变量的值设置内部循环的限制,否则由内部循环(本例中为第二个和第三个数字)生成的模式是在外层循环的每次迭代中都是一样的。

我现在无法编写代码,但在我看来,如果将b设置为从0运行到0,而不是从3运行到0,则可能会更接近您想要的内容。

但是,由于看起来没有你想要的模式,所以很难想象算法打印它们。这些数字意味着什么?