简体   繁体   English

如何使用 java 制作菱形图案?

[英]How to make diamond pattern using java?

How to make this pattern if input N = 5 Output:如果输入 N = 5 Output,如何制作此模式: 钻石

Mine is like this, it become 2N if input N = 5 Output我的就是这样,输入N=5就变成2N Output 我的钻石

Here's my code这是我的代码

int i,j;

    for(i = 0; i <= n; i++)
    {
        for(j = 1; j <= n - i; j++)
            System.out.print(" ");
        for(j = 1; j <= 2 * i - 1; j++)
            System.out.print("*");
        System.out.print("\n");
    }

    for(i = n - 1; i >= 1; i--)
    {
        for(j = 1; j <= n - i; j++)
            System.out.print(" ");
        for(j = 1; j <= 2 * i - 1; j++)
            System.out.print("*");
        System.out.print("\n");
    }

What should i fix??我应该修什么??

You can check odd numbers in your loop.您可以检查循环中的奇数。 Please see the following example:请看下面的例子:

public static void main(String[] args) {
    printPattern(5);
  }

  private static void printPattern(int n) {
    int i, j;

    for (i = 0; i <= n; i++) {
      if (i % 2 != 0) {
        for (j = 1; j <= (n - i)/2; j++) {
          System.out.print(" ");
        }
        for (j = 0; j < i; j++) {
          System.out.print("*");
        }
        System.out.println();
      }
    }
    for (i = n - 1; i >= 1; i--) {
      if (i % 2 != 0) {
        for (j = 1; j <= (n - i)/2; j++) {
          System.out.print(" ");
        }
        for (j = 0; j <i; j++) {
          System.out.print("*");
        }
        System.out.println();
      }
    }
 }

Instead of running these two loops from 0 to N twice.而不是从0N运行这两个循环两次。 Just run half N/2 in each loop.只需在每个循环中运行一半N/2

Example:例子:

  public static void main(String[] args) {
    int n = 10;

    for (int i = 0; i <= (n / 2 + 1); i++) {
      for (int j = 1; j <= n - i; j++) System.out.print(" ");
      for (int j = 1; j <= 2 * i - 1; j++) System.out.print("*");
      System.out.print("\n");
    }

    // N/2
    for (int i = n / 2 - 1; i >= 1; i--) {
      for (int j = 1; j <= n - i; j++) System.out.print(" ");
      for (int j = 1; j <= 2 * i - 1; j++) System.out.print("*");
      System.out.print("\n");
    }
  }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM