3

我必须仅使用嵌套的 for 循环产生以下输出:

----1-----
----333----
---55555---
--7777777--
-999999999-

我不能使用任何 while 或 if 语句

这是我的代码:

public static void printDesign() {
    //for loop for the number of lines
    for (int i = 1; i <= 9; i++) {
        
        //for loop for the left -
        for (int j = 1; j <= 6 - i; j++) {
            System.out.print("-");
        }
        
        //for loop for #'s
        for (int k = 1; k <= 2 * i - 1; k++) {
            System.out.print(i);
        }
        
        //for loop for the right -
        for (int x = 1; x <= 6 - i; x++) {
            System.out.print("-");
        }
        System.out.println();
    }    
}



这就是它产生的结果:

-----1-----
----222----
---33333---
--4444444--
-555555555- 66666666666
7777777777777
888888888888888
99999999999999999


怎样才能得到它只产生奇数?

4

4 回答 4

3

您的解决方案非常接近正确的解决方案。只需更改i外循环中的步骤即可。

于 2013-09-30T07:55:49.090 回答
3
for (int i = 1; i <= 9; i += 2) {
   for (int j = 0; j < (9 - i) / 2; j++) System.out.print('-');
   for (int k = 0; k < i; k++) System.out.print(i);
   for (int l = 0; l < (9 - i) / 2; l++) System.out.print('-');
   System.out.println();
}

输出:

----1----
---333---
--55555--
-7777777-
999999999
于 2013-09-30T08:01:27.240 回答
2

将您的第一个 for 循环增量值从 1 更改为 2。

for (int i = 1; i <= 9; i+=2){}

于 2013-09-30T07:55:43.183 回答
-1

听起来像是家庭作业。但我会提示您密钥在“for(”行中。

于 2013-09-30T07:57:42.350 回答