我必须编写代码来打印以下内容:
999999999888888887777777666666555554444333221 999999999888888887777777666666555554444333221 999999999888888887777777666666555554444333221 999999999888888887777777666666555554444333221
我可以达到
999999999888888888777777777666666666555555555444444444333333333222222222111111111 999999999888888888777777777666666666555555555444444444333333333222222222111111111 999999999888888888777777777666666666555555555444444444333333333222222222111111111 999999999888888888777777777666666666555555555444444444333333333222222222111111111
但无法弄清楚如何使每次迭代减少一次
这就是我所拥有的:
public static void main(String[] args)
{
for(int i = 0; i < 4; i++)
{
for(int j = 9; j >= 1; j--)
{
System.out.print(j);
for(int k = 9; k > 0; k--)
{
System.out.print(j);
}
}
System.out.println();
}
}
以下是我对目前的情况的理解:第一个循环(i)控制要进行的行数,而第一个嵌套循环(j)按降序打印数字9到1。第三个嵌套循环(k)决定打印每个数字的次数。我现在需要做的是每次迭代循环时将该数字减少一个。说实话,我有点迷失在这里的代码中。我知道我需要另一个for循环,它会导致我的k循环每次迭代减少一个,但是无法确定将它放在哪里使其成为doo。我试图在k循环中嵌套一个循环,如下所示:
public static void main(String[] args)
{
for(int i = 0; i < 4; i++)
{
for(int j = 9; j >= 1; j--)
{
System.out.print(j);
for(int k = 9; k > 0; k--)
{
System.out.print(j);
for(int l = 9; l > 0; l--)
{
System.out.print(j);
}
}
}
System.out.println();
}
但那并没有奏效。我试过把它放在k循环之前,但那也没有用。所以现在我基本上把自己搞糊涂了,完全不知道该做什么。
答案 0 :(得分:1)
要识别的关键是您要打印出j
'j'
个字符。您的k
for循环可以从j
开始,然后转到0
。
for(int i = 0; i < 4; i++)
{
for(int j = 9; j >= 1; j--)
{
System.out.print(j);
for(int k = j; k > 0; k--)
{
System.out.print(j);
}
}
System.out.println();
}
答案 1 :(得分:0)
提示:在示例1中,您有
public static void main(String[] args)
{
for(int i = 0; i < 4; i++)
{
for(int j = 9; j >= 1; j--)
{
System.out.print(j);
for(int k = 9; k > 0; k--)
{
System.out.print(j);
}
}
System.out.println();
}
}
您打印8次9次,因为k
变量从9开始。以j
下降时减少的值开始。
答案 2 :(得分:0)
你实际上非常接近,你不应该两次写出来,你应该确保你写出数字本身的次数,而不是每次9次。
一旦你设法解决了这个问题,你应该阅读它,也许它会有所帮助。
注意:
这个答案是 SPOILER 。
999999999888888887777777666666555554444333221
999999999888888887777777666666555554444333221
999999999888888887777777666666555554444333221
999999999888888887777777666666555554444333221
想一想:
您需要4
次go from 9 to 1
次,并为每个相应的号码写出9...1
次的数字。
正如您所说,您需要n
的循环,其中n
为4:
for(int i = 0; i < 4; i++)
{
//...more code here
}
然后,你需要在该循环中从9循环到1:
for(int i = 0; i < 4; i++)
{
for(int j = 9; j >= 1; j--)
{
//...more code here
}
}
然后你只需要将数字写出数字本身的次数:
for(int i = 0; i < 4; i++)
{
for(int j = 9; j >= 1; j--)
{
for(int k = 0; k < j; k++)
{
//more code here
}
}
}
因此,您只需要添加在打印完1后打印换行的行,以及打印本身,就是这样!不过你也可以这样做。你知道怎么做。
答案 3 :(得分:0)
int k=10;
for(int i=9; i> 0; i--)
{
k--;
j=k;
while (j> 0)
{
System.out.printf("%d", i);
j--;
}
}
System.out.printf("%n");
将其存储在方法中并在需要时调用它,或者在您的情况下调用它4次
答案 4 :(得分:-1)
for(int i = 0; i < 4; i++){
for(int j = 9; j >= 1; j--)
for(int k = j; k > 0; k--)
System.out.print(j);
System.out.println();
}