如何仅使用for循环生成奇数

时间:2013-09-30 07:53:50

标签: java for-loop numbers increment

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

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

我不能使用任何时候或如果声明

这是我的代码:

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 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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

答案 2 :(得分:2)

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

  

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

答案 3 :(得分:-1)

听起来像是家庭作业。但我会给你一个提示,关键是在“for(”行。