如何打印序列一个 1,然后两个 2,三个 3,... n ns?

问题描述 投票:0回答:4

编写一个程序来打印序列的一部分:

1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 ...

(该数字重复多次,直到其等于)。

我使用了两个

for
循环,但是,我无法让 1 打印一次,2 打印两次,相反,我得到

1 2 3 4 5 6 1 2 3 4 5 6, etc.
java loops logic
4个回答
1
投票

为此,您需要两个 for 循环。

for (int i = 0; i <= 5; i++) { // This will loop 5 times
    for (int j = 0; j < i; j++) { //This will loop i times
        System.out.print(i);
    }
}

1
投票

我记得目标是打印 n 个数字(例如 1 2 2 3 3 3 4,n = 7),除以空格。对不起我的java)),我用Kotlin写的,尝试更改为Java,但主要思想很清楚。 BTW n – 元素的数量,你需要用扫描仪读取。

int count = 0 //Idea is to create a counter, and to increment it each time of printing

for (int i = 0; i <= n; i++) { //Loops n times
    for (int j = 0; j < i; j++) { //Loops i times
        if (int count < int n) {
        System.out.print(" "+i+" ");
        int count++ //Prints 1 one time, 2 two times, etc. stops if reached n number
        }
    }
}

0
投票

这个怎么样:

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

其中,num = 1,2,....n

(此外,除非您附上代码,否则我们无法告诉您为什么您得到该输出。请附上此类问题的代码片段:)!


0
投票

String#repeat

从 Java 11 开始,您可以使用

String.repeat
通过单个循环来完成此操作。

演示

public class Main {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++)
            System.out.print(String.format("%s ", String.valueOf(i)).repeat(i));
    }
}

输出

1 2 2 3 3 3 4 4 4 4 5 5 5 5 5

在线演示

© www.soinside.com 2019 - 2024. All rights reserved.