无法生成输出(for循环)

时间:2013-02-22 16:01:50

标签: java

我正在尝试打印

****1
***22
**333
*4444
55555

因为我是java的初学者。我只是打印

11111
22222
33333
44444
55555        

我的解决方案:

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

****
***
**
*

我的解决方案:

 for(int i=1;i<=4;i++){
     for(int j=1;j<=5-i;j++){
         System.out.print("*");
     }
     System.out.println();
 }

我尝试将它们合并在一起,但我不知道该怎么做。我知道我很接近,但我被困在这里。

5 个答案:

答案 0 :(得分:3)

在尝试解决问题之前,您必须先了解问题。 在你的情况下,

  • 有两个循环,因为你有列和行
  • 生成列的循环:
    • 必须位于生成行
    • 的内部
    • 必须知道是否要打印星号或数字
  • 生成线条的循环
    • 必须知道应该在该行打印哪个号码
    • 必须知道应该在该行打印多少颗星

答案 1 :(得分:0)

这是一种简单的方法。

for (int i = 1; i <= 5; i++) {
    for (int j = i; j < 5; j++)
        System.out.print("*");
    for (int k = 0; k < i; k++)
        System.out.print(i);
    System.out.println();
}

答案 2 :(得分:-1)

    int k = 4;
        for (int i = 1 ; i <= 5 ; i++){
            System.out.println(); 
            for(int j = 1 ; j <= 5 ; j++){
               if(j<=k){
                  System.out.print("*"); 
               }else{
                  System.out.print(i);
                  k--;
               }
            }
        }

答案 3 :(得分:-3)

你应该明白i,j变量代表什么。找到法律,你将很容易解决这个问题。

for(int i=1;i<=5;i++){
    for(int j=1;j<=5-i;j++){
        System.out.print("*");
    }
    for (int j=5-i+1;j<=5;j++){
        System.out.print(j);
    }
    System.out.println();
}

答案 4 :(得分:-3)

       int k = 4;

        for (int i = 1 ; i <= 5 ; i++){
            System.out.println(); 
            for(int j = 0 ; j <= 4 ; j++){
               if(j<k){
                  System.out.print("*"); 
               }else{
                  System.out.print(i);
                  if(j==4){
                      k--;
                  }
               }

            }
        }