使用循环Java制作模式

时间:2014-10-18 06:15:17

标签: java for-loop

我应该创建一些模式 - 有点三角形 - 使用基于给定数字n的循环。

例如,如果给定的数字n是3,则模式应该是这样的:

  **
 *##*
*####*

以下是我目前正在处理的一段代码。

public static void patterPrinters(int n) {
  for (int k = 0; k < n; k++) {
    for ( int x = n; x > k + 1; x--) {
      System.out.print(" ");
      }

    for ( int z = n - k; z <= n; z++) {
      System.out.print("**");
      }
      System.out.print("\n");
      }
  }
}

到目前为止,我能够制作出类似的形状,但当然,它充满了星星(*),而它们之间没有数字符号(#)。喜欢:

  **
 ****
******

有人能给我一个暗示,就像我应该从这里做的那样吗?

3 个答案:

答案 0 :(得分:2)

 public static void patterPrinters(int n) {
    int i,j,k;
    for( i=0;i<n;i++)
    {
      for(k=0;k<((n-1)-i);k++)
      {
        System.out.print(" ");
      }
      System.out.print("*");
      for(j=0;j<(i*2);j++)
      {
        System.out.print("#")
      }
      System.out.print("*\n");
    }
}

检查一下。 一切都好。

答案 1 :(得分:0)

提示:

如果您设法打印了正确的形状,但仅使用*,则可以通过在每行的开头和结尾打印一个*来轻松解决此问题,并在它们之间打印x- 2 # s,其中x是您当前在每行中打印的*的数量。

答案 2 :(得分:0)

public static void patterPrinters(int n)

{
    for (int k = 0; k < n; k++) 
    {
        for (int x = n; x > k + 1; x--) 
        {
          System.out.print(" ");
        }
        System.out.print("*");
        for (int col = 0; col < k; col++) 
        {
          System.out.print("##");
        }
        System.out.print("*\n");
      }
}