如何正确放置三角形?

时间:2017-11-21 17:48:32

标签: java for-loop if-statement

我正在尝试打印出一个如下所示的右三角:

                      1
                    2 1
                  3 2 1
              5 4 3 2 1
            6 5 4 3 2 1
          7 6 5 4 3 2 1
        8 7 6 5 4 3 2 1
      9 8 7 6 5 4 3 2 1
   10 9 8 7 6 5 4 3 2 1
11 10 9 8 7 6 5 4 3 2 1

如果方法中的数字变大,则三角形的大小会增加,在本例中为11。 我的代码似乎只能在10之后工作,我的间距搞砸了。

1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 6 5 4 3 2 1 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 2 1 10 9 8 7 6 5 4 3 2 1 11 10 9 8 7 6 5 4 3 2 1 12 11 10 9 8 7 6 5 4 3 2 1 13 12 11 10 9 8 7 6 5 4 3 2 1

我试图让它达到99,间距是正确的。我应该对if语句或for循环进行哪些编辑才能正确分隔它?

代码:

public class Patterns 
{

public static void main(String[] args) 
{
    displayPattern(13);
    //displayPattern(11,",");
}
public static void displayPattern(int n)
{
    //print out n-1 spaces and the first number
    //print n-2 spaces and the 2nd then first number
    int counter = n;
    for(int i = 1; i <= n; i++) 
    {
        for(int j = 1; j <= counter; j++)
        {
            if (n > 10)
            {
                if (i == n)
                {
                    System.out.print("");
                }
                else if (i <= 10)
                {
                    System.out.print("  ");

                }
                else
                {
                    System.out.print("  ");

                }

            }
            else if (n <=10)
            {
                if (i>9)
                {
                    System.out.print(" ");
                }
                else
                {
                    System.out.print("  ");
                }
            }
        }
        System.out.print(i + " ");
        int tempValue = i - 1;
        while(tempValue>0)
        {
            System.out.print(tempValue);
            if(tempValue>1)
            {
                System.out.print(" ");
            }
            tempValue--;
        }
        if(tempValue==0)
        {
            System.out.print("\n");

        }
        counter--;
    }
}
}

0 个答案:

没有答案