2014-09-13 86 views
1

两种模式我试图获得是:的java号和 “*” 循环模式

11111 
12222 
12333 
12344 
12345 

和...

*1234 
**123 
***12 
****1 
***** 

请帮我在这。我找不到方法。

我能想到的唯一的代码是:

public class pattern_5 
{ 
    public static void main(String args[]) 
    { 
     int n=5; 
     for(int i=1;i<=n;i++) 
     {   
      for(int j=1;j<=i;j++) 
      {   
       System.out.print(j); 
      } 
      System.out.println(); 
     }   
    } 
} 

输出是错误的。基本上,我只能得到预期数字的一半(你可以通过将j改成*来获得半星)。

+1

请格式化你的代码,以便它那可读...... – StackFlowed 2014-09-13 17:07:49

+0

那么,它完美地显示出来在我的电脑上。不知道什么是错的。 – therewillbecoffee 2014-09-13 17:16:24

+0

检查编辑... – StackFlowed 2014-09-13 17:18:00

回答

0

第一个场景

int n=5; 
     for(int i=1;i<=n;i++) 
     {   
      for(int j=1;j<=n;j++) 
      { 
       if(i<j) {  
        System.out.print(i); 
       } else {  
        System.out.print(j); 
       } 
      } 
      System.out.println(); 
     } 

输出:

11111 
12222 
12333 
12344 
12345 

而对于第二种情景:

int n=5; 
     for(int i=1;i<=n;i++) 
     {   
      for(int j=1;j<=n;j++) 
      { 
       if(i<j) {  
        System.out.print(j-i); 
       } else {  
        System.out.print("*"); 
       } 
      } 
      System.out.println(); 
     } 

输出:

*1234 
**123 
***12 
****1 
***** 
+0

这个工程,我想我可以制定出另一个。 – therewillbecoffee 2014-09-13 17:19:12

+0

第二个不符合此代码工作。 改变I至*: '1 **** 12 *** 123 ** 1234 * 12345 ' 并改变在j之后到*: '* 1111 ** 222 *** **** 4 ***** ' – therewillbecoffee 2014-09-13 17:24:26

+0

它正在为我工​​作。我认为你在这方面犯了一些错误。你可以请检查一次 – 2014-09-13 17:27:39

0

对于第一种情形

11111 
12222 
12333 
12344 
12345 

你能做的就是

int n=5; 
for(int i=1;i<=n;i++) 
{   
    for(int j=1;j<=i;j++) 
    { 
     if(j<i) {  
      System.out.print(j); 
     } else {  
      System.out.print(i); 
     } 
    } 
    System.out.println(); 
} 

套用同样的逻辑为*一部分,我认为你将能够通过现在它是如何工作的

猜测它
+0

你的“j”和“我”互换,因此我得到了一个新的模式。 – therewillbecoffee 2014-09-13 17:18:16

+0

@ankitmaity我的不好,请检查编辑的代码... – StackFlowed 2014-09-13 17:19:35

+0

我试图让第二个与星星。通过将if和else块中的j和i更改为*不起作用。 – therewillbecoffee 2014-09-13 17:25:48