使用for循环创建一个颠倒的三角形

时间:2014-09-19 09:46:32

标签: java for-loop

我是一名java学生,我很难过,尝试使用for循环来创建一个颠倒的三角形。

这就是我现在的代码,一个直线三角形。我怎么能像它一样制造另一个,但颠倒过来?

for (int i=1; i<20; i += 2)
    {
        for (int k=10; k < (0 - i / 2); k++)
        {
            System.out.print(" ");
        }
        for (int j=0; j<i; j++)
        {
            System.out.print("*");
        }
        System.out.println("");
    }

4 个答案:

答案 0 :(得分:3)

这有点棘手吗?

只需更改

for (int i=1; i<20; i += 2)

for (int i = 19; i >0; i -= 2) 

代码。

 for (int i = 19; i > 0; i -= 2) {
     for (int k = 10; k < (0 - i / 2); k++) {
         System.out.print(" ");
     }
     for (int j = 0; j < i; j++) {
         System.out.print("*");
     }
     System.out.println("");
   }

Out put:

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

答案 1 :(得分:0)

int c = 2*lines;
for (int i = lines-1; i>=0; i--)
{
    for (int j = i; j < lines; j++)
    {
        System.out.print(" ");
    }
    for (int k = 1; k <= c; k++)
    {
        if (k % 2 == 0)
        {
            System.out.print(" ");
        }
        else
        {
            System.out.print(symbol);
        }
    }

    System.out.print("\n");
    c -= 2;
}

答案 2 :(得分:0)

您所要做的就是更改第3个循环

    for (int j=0; j<i; j++)
    {
        System.out.print("*");
    }

在您的代码中,您打印1星,3星,5星等等...(我实际上是明星)

要使其颠倒,请以最大值启动j并减小它以便打印n - i星

       for (int j = 20 - i; j > 0; j--)
        {
            System.out.print("*");
        }

答案 3 :(得分:0)

public static void main(String[] args) {

    StringBuffer sb = new StringBuffer();

    for (int i = 1; i < 20; i += 2) {
        for (int k = 10; k < (0 - i / 2); k++) {
            sb.append(" ");
        }
        for (int j = 0; j < i; j++) {
            sb.append("*");
        }
        sb.append("\n");
    }

    System.out.println(sb.reverse());
}

但是你可能应该学习一些关于循环和算法的知识。