如何在java中创建模式

时间:2017-04-13 16:48:52

标签: java loops

第一种模式:

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

我尝试过的上述模式的代码是:

class spacecenterfive
{
    public static void main(String args[])
    {
        for(int i=5;i>=1;i--)
        {
            for(int j=1;j<i;j++)
            {
                System.out.print(" ");
            }
            for(int k=i;k==i;k++)
            {
                System.out.print(i);
            }
            for(int l=5;l>i;l--)
            {
                System.out.print(" ");
            }
            for(int k=i;k==i&k!=5;k++)
            {
                System.out.print(i);
            }
            System.out.println();
        }
    }
}

但上述代码的例外结果如下:

    5
   4 4
  3  3
 2   2
1    1

第二种模式:

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

上述模式的代码如下:

        class centerspaceone
{
    public static void main(String args[])
    {
        for(int i=1;i<=5;i++)
        {
            for(int j=5;j>i;j--)
            {
                System.out.print(" ");
            }
            for(int k=i;k==i;k++)
            {
                System.out.print(i);
            }
            for(int l=1;l<=((i-1)*2)-1;l++)
            {
                System.out.print(" ");
            }
            for(int k=i;k==i&&k!=1;k++)
            {
                System.out.print(i);
            }
            System.out.println();
        }
        for(int i=4;i>=1;i--)
        {
            for(int j=5;j>i;j--)
            {
                System.out.print(" ");
            }   
            for(int k=i;k==i;k++)
            {
                System.out.print(i);
            }
            for(int l=1;l<=((i-1)*2)-1;l++)
            {
                System.out.print(" ");
            }
            for(int k=i;k==i&&k!=1;k++)
            {
                System.out.print(i);
            }
            System.out.println();
        }
    }

}

我无法编码第一个模式。我很容易得到第二个模式的输出。 对于第二种模式,我很容易得到输出。任何人都可以提出一些建议来为第一种模式带来输出。 请帮帮我!

1 个答案:

答案 0 :(得分:1)

明显的作业问题,所以我不会写代码。但请注意以下几点:

  • 数字前后的空格数与该行的数字相匹配

  • 为行打印的数字等于abs(row - 4) + 1,其中row为零索引