编写一个程序来打印序列的一部分:
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.
为此,您需要两个 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);
}
}
我记得目标是打印 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
}
}
}
这个怎么样:
for(int i=1;i<=num;i++){
for(int j=1;j<=i;j++){
System.out.print(" "+i+" ");
}
}
其中,num = 1,2,....n
(此外,除非您附上代码,否则我们无法告诉您为什么您得到该输出。请附上此类问题的代码片段:)!
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