【问题标题】:How to produce odd numbers using only a for loop如何仅使用 for 循环产生奇数
【发布时间】:2013-10-06 00:19:06
【问题描述】:

我必须只使用嵌套的 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

我怎样才能让它只产生奇数?

【问题讨论】:

    标签: java for-loop numbers increment


    【解决方案1】:
    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】:

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

      【讨论】:

      • 我认为在这种情况下没有什么不好的帮助。 OP 已经表现出努力并且非常接近真正的解决方案。还有一个特定的点 OP 要求。我相信这个问题是公平的,也是一个很好的问题。
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        for (int i = 1; i

        【讨论】:

        • 我认为提供小费比提供完整解决方案更好。
        • 也许但是方法似乎是正确的并且解决方案非常接近:)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-09
        • 1970-01-01
        • 2021-01-14
        相关资源
        最近更新 更多