Java使用for循环打印特定模式

Java使用for循环打印特定模式,java,for-loop,Java,For Loop,下面是我的代码有人能帮我吗我被困在*部分 我想要这样的输出 9 989 98789 9876789 987656789 。。。等等 for (int i = 1; i <= l; i++) { for (int j = 1; j <= l - i; j++) System.out.print(" "); for (int j = 1; j <= (2 * i - 1); j++)

下面是我的代码有人能帮我吗我被困在*部分

我想要这样的输出

     9
    989
   98789
  9876789
 987656789
。。。等等

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

        for (int j = 1; j <= (2 * i - 1); j++) {
            if((l-j) < l-i){
            // here System.out.print("*");
            }
            else
                System.out.print(l - j);

        }
        System.out.print("\n");
    }

for(inti=1;i我要做的不仅仅是那一行

    for (int j = 1; j <= (2 * i - 1); j++) {
        if((l-j) < l-i){
        // here System.out.print("*");
        }
        else
            System.out.print(l - j);

for(int j=1;j我最终重写了它;我无法为您缺少的
打印
找到一个简明常量。如果您将
I
0
循环到
l
(包括),您可以执行以下操作:

空间 最后一行(
i=l
)有0个空格,因此每行都有
l-i
空格:

for(int j = 0; j < l-i; j++)
    System.out.print(" ");
赖特 与上面相同的循环,但相反。由于中心已在上面处理,因此从高1开始,您不想再次输出它

for(int j = l-i+1; j <= l; j++)
    System.out.print(j);

for(int j=l-i+1;j这是一个完整的程序。我使用了“分而治之”的方法(基本上与Michael Mrozek的想法相同),并使用该方法使程序非常容易理解。希望这会有所帮助

public class PatternPrinter {
public static void main(String[] args) {
    printAllRows(9, 5);
}

public static void printAllRows(int max, int numOfRows) {
    for (int i = 1; i <= numOfRows; i++) {
        printRow(numOfRows - i, max, i);
        System.out.print("\n");
    }
}

public static void printRow(int numOfSpaces, int max, int num) {
    printSpaces(numOfSpaces);
    printLeftAndCenterPart(max, num);
    printRightPart(max, num - 1);
}

public static void printRightPart(int max, int num) {
    while(num > 0) {
        System.out.print(max - num + 1);
        num--;
    }
}

public static void printLeftAndCenterPart(int max, int num) {
    while(num > 0) {
        System.out.print(max--);
        num--;
    }
}

public static void printSpaces(int numOfSpaces) {
    while(numOfSpaces > 0) {
        System.out.print(" ");
        numOfSpaces--;
    }
}
公共类模式打印机{
公共静态void main(字符串[]args){
打印所有行(9,5);
}
公共静态void printalrows(int max,int numorrows){
对于(int i=1;i 0){
系统输出打印(最大-数量+1);
num--;
}
}
公共静态无效printLeftAndCenterPart(int max,int num){
while(num>0){
系统输出打印(最大--);
num--;
}
}
公共静态void打印空间(int numOfSpaces){
while(numOfSpaces>0){
系统输出打印(“”);
Numof空间--;
}
}

}

你尝试了什么?什么不起作用?我们应该运行你的代码来确定哪里出了问题吗?@org不,我经常发现工作中需要输出三角形的数字:)@Falmari我猜他尝试了他发布的代码片段,他在评论中遇到了问题
//这里
。。。
for(int j = l-i+1; j <= l; j++)
    System.out.print(j);
public class PatternPrinter {
public static void main(String[] args) {
    printAllRows(9, 5);
}

public static void printAllRows(int max, int numOfRows) {
    for (int i = 1; i <= numOfRows; i++) {
        printRow(numOfRows - i, max, i);
        System.out.print("\n");
    }
}

public static void printRow(int numOfSpaces, int max, int num) {
    printSpaces(numOfSpaces);
    printLeftAndCenterPart(max, num);
    printRightPart(max, num - 1);
}

public static void printRightPart(int max, int num) {
    while(num > 0) {
        System.out.print(max - num + 1);
        num--;
    }
}

public static void printLeftAndCenterPart(int max, int num) {
    while(num > 0) {
        System.out.print(max--);
        num--;
    }
}

public static void printSpaces(int numOfSpaces) {
    while(numOfSpaces > 0) {
        System.out.print(" ");
        numOfSpaces--;
    }
}