2014-10-18 117 views
0

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

例如,如果给定的数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"); 
     } 
    } 
} 

到目前为止,我可以作出类似的形状,当然,它充满了星(*),而不在它们之间的数字符号(#)。喜欢:

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

有人能给我一个提示,因为我应该从这里做什么?

回答

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"); 
    } 
} 

检查了这一点。 所有的最佳。

+0

@getlost遐我忘了。谢谢。 – nitish005 2014-10-18 06:40:53

0

提示:

如果你成功地打印正确的形状,但只有*,你可以很容易地通过在每一行的开始和结束打印单个*解决这个问题,以及它们之间的打印X-2 # s,其中x是您当前在每行中打印的*的数量。

0

公共静态无效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"); 
     } 
} 
+0

下面是基于您的代码的替代解决方案。 – 2014-10-18 16:41:40