我需要使用3个"for“循环来编写一些java输出
122333444455555
22333444455555
333444455555
444455555
55555
到目前为止,我的代码如下:
public static void problemFour() {
for(int i = 5; i >= 1; i--) {
for(int a = 1; a <= i; a++) {
for(int b = 1; b <= a; b++) {
System.out.print(a);
}
}
System.out.println();
}
}下面的输出
111112222333445
11111222233344
111112222333
111112222
11111我已经交换了许多++的组合--'s,<'s,>'s,5‘和1's。
我被困住了,如果有人能给我指出正确的方向,那就太好了。
发布于 2017-10-02 13:42:38
您在行的开头以及一个数字(这里是字符)的重复次数上犯了错误。通过以下方式进行修复:
for(int i = 1; i <= 5; i++) { // Each iteration for one line
for(int a = i; a <= 5; a++) { // starts with a for ith line
for(int b = 1; b <= a; b++) { // a times `a` digit
System.out.print(a);
}
}
System.out.println();
}要简单地你的问题,首先考虑打印这个模式:
12345
2345
345
45
5然后对其进行扩展:在最内层的循环中,将重复代码放入等于数字次数的位置,使用:
for(int b = 1; b <= a; b++) { // a times `a` digit
System.out.print(a);
}发布于 2017-10-02 13:42:25
我们可以观察到数字1只打印一次,2打印两次,3打印三次,等等。
firstValueInLine保持行的开始编号;number是打印的行中的编号;counter只确保number打印number次
for (int firstValueInLine = 1; firstValueInLine <= 5; ++firstValueInLine) {
for (int number = firstValueInLine; number <= 5; ++number) {
for (int counter = 0; counter < number; ++counter) {
System.out.print(number);
}
}
System.out.println();
}发布于 2017-10-02 14:33:02
您可以尝试以下操作。看起来不错。
public static void problemFour() {
for (int i = 1; i <= 5; i++) {
for (int a = i; a <= 5; a++) {
for (int b = 1; b <= a; b++) {
System.out.print(a);
}
}
System.out.println();
}
}输出:
122333444455555
22333444455555
333444455555
444455555
55555https://stackoverflow.com/questions/46520008
复制相似问题