java编号和“*”循环模式

时间:2014-09-13 17:05:48

标签: java loops design-patterns for-loop logic

我试图获得的两种模式是:

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更改为*来获得明星的一半)。

2 个答案:

答案 0 :(得分: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(); 
}  

为*部分应用相同的逻辑我认为你现在可以猜到它是如何工作的

答案 1 :(得分: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
*****