我必须使用for循环打印一个系列

时间:2015-03-31 10:40:37

标签: java loops

这是系列:

12345

22345

33345

44445

我试图解决这个问题,但问题不正确......

以下是代码:

    class q14
  {
      public static void main ( )
         {
             int i,j,k;
             for (i=1;i<=5;i++)
                {
                    for (j=i;j<=5;j++)
                      {
                          for (k=1;k<=i;k++)
                             {
                                 System.out.print (i + " ");
                                }
                          System.out.print (j + " ");
                        }
                    System.out.println();
                }
            }
        }

4 个答案:

答案 0 :(得分:1)

以下块应按照您的描述生成系列。

int numberOfLines = 4;
int numberOfDigitsPerLine = 5;

for (int i=1; i<numberOfLines+1; i++){
    for(int j=1; j<=numberOfDigitsPerLine; j++) {
        if(j>=i) {
            System.out.print(j);
        } else {
            System.out.print(i);
        }
    }
    System.out.println();
}

根据需要更改numberOfLinesnumberOfDigitsPerLine

<强>精化:

首先,您必须分析系列,通过它的外观,第一个数字从1开始,然后继续前进5个数字,第二个数字沿着5个数字前进,最多5个,如前所述,但它用2替换第一个数字

向下移动数字我们可以看到一个模式,其中第N个数字将具有N个N个数字,后跟连续数字,直到数字5。

所以在上面的代码中,我选择max N为4,如你所描述的那样,数字最多为5,这些数字分别由变量numberOfLinesnumberOfDigitsPerLine表示。

块本身检查该点的N是什么(在我的块中它由i表示),然后继续向最大数字5,这在j for循环内完成。如果j大于或等于N,那么我们打印j,否则我们还没有完成所有N的打印,所以我们打印N.

答案 1 :(得分:0)

这是:

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

答案 2 :(得分:0)

你不需要系列的第三个循环

for (int j=1;j<=5;j++) {

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

       System.out.println();
  }

输出

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

Demo

答案 3 :(得分:0)

试试这个:

 for(int i=1;i<=4;i++)
    {
        for(int j = 1; j<=5;j++)
        {
            if(i>j)
            {
                for(int x= 1 ; x<=i;x++)
               {
                   System.out.print(i);
                   j++;
               }   
            }                
            System.out.print(j);
        }
        System.out.println("\n");
    }