嘿我有一个问题,我一直想弄清楚几个小时,我需要使用嵌套循环来打印以下内容
-----1-----
----333----
---55555---
--7777777--
-999999999-
这是我到目前为止所拥有的。
public static void Problem6 () {
System.out.println("Problem 6:");
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
System.out.print("-");
}
for (int j = 1; j <= 9; j += 2) {
System.out.print(j);
}
for (int j = 5; j >= i; j--) {
System.out.print("-");
}
System.out.println();
}
}
这是打印的内容
-----13579-----
----13579----
---13579---
--13579--
-13579-
答案 0 :(得分:8)
您有正确的短划线数,只是没有正确打印出数字。让我们来看看为什么:
哪个循环打印出数字? 第二个嵌套for循环。
它做什么?
它打印出j
,其中j
的范围从1
到9
,j
每次迭代循环增加2。换句话说,1, 3, 5, 7, 9
,在您的输出中确认
你想要它做什么?
那么让我们来看看所需的输出。您希望在 第一 第一行 上打印一次 {em}。您希望在 第三 下一行三次打印1
。您希望{<1}}在 第五 下一行打印五次次。等等。
你注意到一个模式吗?您希望我们上面提到的循环打印相同的号码(3
,5
,1
,... 3
)作为号码时间(5
,i
,1
,... 3
)。
编辑 Whooops我实际上误读了输出。我的答案仍然与以前非常相似,但我撒谎说你打印的是哪一行。它仍然是5
三次次,i
五次次,但不同的行。从我的解决方案跳到实际解决方案的最简单方法是注意在偶数行上......你什么都不做。你甚至可以用这种方式编写你的解决方案。
另一个提示是,您应该专注于将每行上的数字和破折号分开。当你修复每一行的数字时,你可能会搞砸破折号码,但是你会明白如何轻松修复破折号。
答案 1 :(得分:-1)
public class pattern
{
public static void main ( )
{
for (int i = 1;i<=9;i+=2)
{
for(int b = 9;b>=i;b-=2)
{
System.out.print(" ");
}
for(int j =1;j<=i;j++)
{
System.out.print(i);
}
System.out.println();
}
}
}