0

ネストされたループと数字のパターンがどのように機能するか理解できません。3 を除くすべてのパターンを完了しました。誰かがこのコードを手伝ってくれて、これがどのように機能するかを説明してくれませんか?

public class Patterns7{
    public Patterns7() {
    }

    public void displayPatternI(int lines) 
    {
        System.out.println("\n\tPattern I\n");
        for (int i = 1; i <= lines; i++)
        {
            for (int j = 1; j <= i; j++)
                System.out.print (j + " " );
            System.out.println();
        }
    }

    public void displayPatternII (int lines) 
    {
        System.out.println("\n\tPattern II to be implemented\n");
        for (int i = 1;i <= lines; i++) 
        { 
            for(int j = i;j >= 1; j--) 
                System.out.print(j); 

            System.out.println(); 
        }
        System.out.println();
    }

    public void displayPatternIII (int lines) 
    {
        System.out.println("\n\tPattern III  to be implemented\n");
        for (int i = 1; i <= lines; i++)
        {
            for (int space = 1; space <= lines-i; space++)
                System.out.print (" ");

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

            System.out.println();
        }

        System.out.println();
    }
}

パターン III は次のようになります。

      6

     56

    456

   3456

  23456

 123456

しかし、私ができることはこれだけでした:

      1

     1 2

    1 2 3

   1 2 3 4

  1 2 3 4 5

 1 2 3 4 5 6

出力を 6 から開始し、減少させてから増加させる方法がわかりません。

パターン V は次のようになります。

          1

        2 1 2

       3 2 1 2 3

      4 3 2 1 2 3 4

     5 4 3 2 1 2 3 4 5

    6 5 4 3 2 1 2 3 4 5 6

しかし、それは次のようになります。

    1

     1 2 3

    1 2 3 4 5

コード:

public void displayPatternVI (int lines) 
{
    System.out.println("\n\tMy Own Pattern to be implemented\n");

    for (int i = 1; i <= lines/2; i++)
    {
        for (int space = 1; space <= (lines/2)-i; space++)
            System.out.print (" ");

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

        System.out.println();
    }

    for (int i = 1; i <= lines/2; i++)
    {
        for (int space = 1; space <= i-1; space++)
            System.out.print (" ");

        for (int j = 1; j <= lines-(i*2)+1; j++)
            System.out.print (j + " ");

        System.out.println();
    }

    System.out.println();
}

パターン VI は次のようになります。

              1

            2 1 2

          3 2 1 2 3

        4 3 2 1 2 3 4

      5 4 3 2 1 2 3 4 5

    6 5 4 3 2 1 2 3 4 5 6

    6 5 4 3 2 1 2 3 4 5 6

      5 4 3 2 1 2 3 4 5 

        4 3 2 1 2 3 4

          3 2 1 2 3

            2 1 2

              1

しかし、それは次のようになります:

      1

     1 2 3

    1 2 3 4 5

    1 2 3 4 5

     1 2 3

      1

誰かが助けて、私にこれを説明してもらえますか?

4

2 に答える 2

1

一度に 1 つの質問だけをすることになっていますが、最初の問題に対する解決策を次に示します。SIZE6 に等しい場合:

    6
   56
  456
 3456
23456

123456

次のようなものが必要です。

String temp;

for(int i = 0; i < SIZE; i++)
{
    temp = "";

    for(int j = SIZE - i; j <= SIZE ; j++) 
    {
        temp += j;
    }

System.out.printf("%" + SIZE + "s\n", temp);
}

2 つ目は自分で試してください。

于 2013-07-07T08:07:22.383 に答える
0
public void displayPatternIII (int lines) 
{
  System.out.println("\n\tPattern III  to be implemented\n");
    for (int i = lines; i >= 1; i--)
      {
        int space = 1;
        for (; space <= i-1; space++)
          System.out.print (" ");

        for (int j = space; j <= lines; j++)
          System.out.print (j);

        System.out.println();
      }
}

出力:

    Pattern III  to be implemented

     6
    56
   456
  3456
 23456
123456
于 2013-07-07T08:06:41.910 に答える