【问题标题】:What can be the possible logic for printing this pattern in Java(BlueJ)?在 Java(BlueJ) 中打印此模式的可能逻辑是什么?
【发布时间】:2017-11-11 06:34:41
【问题描述】:

注意:这里的“#”代表“空格”。 下面是代码 sn-p 显示了我是如何尝试编写程序的:-

//Pattern to be printed:-
    /* ##1
     * #121
     * 12321
     * #121
     * ##1
       */
    for(int i=n;i>=1;i--)
    {
        for(int j=n-3;j>=0;j--)
        {
           System.out.print(" ");
           for(int k=i-2;k>=1;k--)
           {
               System.out.print(k);
           }
           System.out.println();
        }
    }

【问题讨论】:

    标签: java bluej


    【解决方案1】:

    你可以试试这个,

    int i,s,k,j;
    for (i=1;i<=5;i++) //for 5 loops
    {
        for (s=1;s<=5-i;s++) //for spaces
        {
            System.out.print(" ");
        }
        for (j=1;j<=i;j++)
        {
            System.out.print(j); //for printing values
        }
        for (k=i-1;k>=1;k--)
        {
            System.out.print(k); //for printing values
        }
        System.out.println(); //for line break
    }
    for (i=4;i>=1;i--) //for 4 loops
    {
        for (s=1;s<=5-i;s++) //for spaces
        {
            System.out.print(" ");
        }
        for (j=1;j<=i;j++)
        {
            System.out.print(j); //for printing values
        }
        for (k=i-1;k>=1;k--)
        {
            System.out.print(k); //for printing values
        }
        System.out.println(); //for line break
    }
    

    输出将是:

        1
       121
      12321
     1234321
    123454321
     1234321
      12321
       121
        1
    

    【讨论】:

      【解决方案2】:

      如果您想要不同尺寸的钻石,只需更改 max 值

      public class Pattern {
      
        public static void main(String[] args) {
      
          int max = 3;
      
          // Draw triangle
          for (int i = max; i >= 0; i--) {
            foo(max-i, max);
          }
      
          // Draw upside down triangle
          for (int i = 1; i < max; i++) {
            foo(max-i, max);
          }
        }
      
        public static void foo(int n, int max) {
      
          // Put spaces to center it
          for (int i = 0; i < max-n; i++) {
            System.out.print(" ");
          }
      
          // Print counting up
          for (int i = 1; i <= n; i++) {
            System.out.print(i);
          }
      
          // Print counting down
          for (int i = n-1; i >= 1; i--) {
            System.out.print(i);
          }
      
          // New line character
          System.out.println();
      
        }
      
      }
      

      输出(请注意顶部有一个额外的空间,我将把它留作练习让您尝试删除):

        1
       121
      12321
       121
        1
      

      【讨论】:

        【解决方案3】:

        这是你想要的代码

        import java.util.*;
        import java.lang.*;
        import java.io.*;
        
        
        class Ideone
        {
            public static void main (String[] args) throws java.lang.Exception
            {
                int n;
                Scanner sc=new Scanner(System.in);
                n=sc.nextInt();
                int a,b;
                a=n-1;
                b=1;
        
                for(int i=1;i<=n;i++)
                {
                    for(int j=1;j<=a;j++)
                        System.out.print("#");
                    for(int k=1;k<=b;k++)
                        System.out.print(k);
                    for(int l=b-1;l>=1;l--)
                        System.out.print(l);
                    System.out.println("\n");   
                    a--;
                    b++;
                }
        
                a=1;
                b=n-1;
        
                for(int i=n-1;i>=1;i--)
                {
                    for(int j=1;j<=a;j++)
                        System.out.print("#");
                    for(int k=1;k<=b;k++)
                        System.out.print(k);
                    for(int l=b-1;l>=1;l--)
                        System.out.print(l);
                    a++;
                    b--;
                            System.out.println("\n");   
        
                }
        
            }
        }
        

        输出-

        ##1
        
        #121
        
        12321
        
        #121
        
        ##1
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-09-28
          • 1970-01-01
          • 1970-01-01
          • 2011-06-03
          • 1970-01-01
          • 2014-08-09
          • 2021-10-13
          相关资源
          最近更新 更多