【问题标题】:Java Loop number patternJava 循环编号模式
【发布时间】:2017-11-30 15:43:24
【问题描述】:

如何执行 for 循环语句以使输出类似于 (ii) 0 1 1 2 2 2 3 3 3 3 4 4 4 4 4 ?我似乎无法得到该输出的正确答案。

for(int i = 0; i <= 4; i++) {
    for(int j = 0; j < i; j++) {
        System.out.print(j + " ");
    }
}

【问题讨论】:

  • 一个小提示,两个嵌套循环就可以了 :),虽然这不是一个适合 SO 的问题,因为它基本上是一个代码请求
  • 计数并为每个数字n 打印n + 1 次。一点也不难。
  • 对...你做了什么才意识到你没有正确答案?
  • 我尝试过嵌套循环,但似乎我仍然没有得到它 public class hello{ public static void main(String []args){ for(int i = 0; i

标签: java for-loop


【解决方案1】:

当你现在得到代码时,这里是你的错误:

for(int i = 0; i<=4; i++){
    // You´re printing 0 once, so in order to loop you have to loop until j<=i
    for(int j = 0; j<=i; j++){
        // You actually did want to print i here, as it will increment.
        // like 0, 1, 2, 3, 4. in Order to achive your pattern.
        // When printing j it will allways start with 0 again, as it´s the nested loop
        System.out.print(i + " ");
    }
}

现在的输出看起来是正确的

0 1 1 2 2 2 3 3 3 3 4 4 4 4 4 

【讨论】:

  • 我得到了正确答案。您的代码有一个小错误,请将您的运算符从 j=
  • @ASHWIIN 把我搞砸了
【解决方案2】:

要为输出 0 1 1 2 2 2 3 3 3 3 4 4 4 4 4 编写 a for 循环语句,您需要使用 OEIS 中的 A002024 序列:

for(int i = 0; i < 15; ++i) {
    System.out.print(((int) Math.floor((1 + Math.sqrt(1 + 8 * i)) / 2) - 1) + " ");
}

你可以测试一下here

【讨论】:

    猜你喜欢
    • 2015-08-21
    • 2021-12-11
    • 1970-01-01
    • 2017-06-19
    • 2023-03-11
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多