如何在Java中制作这种自定义算法?

时间:2018-11-20 11:48:23

标签: java algorithm

出于个人目的,我正在增强Java技能,

我想知道如何在Java中制作此算法:

* 2 3 4 5
* * 3 4 5
* * * 4 5
* * * * 5
* * * * *
* * * * *
* * * * 5
* * * 4 5
* * 3 4 5
* 2 3 4 5

到目前为止,我还是做到了

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

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

我想做点更努力的事情。

3 个答案:

答案 0 :(得分:2)

编程的方法是将问题分解为较小的块,并一次处理一个块。在进行下一个测试之前,请务必先测试每个测试块。

  1. 使星星行变得更长。您已经做到了。

  2. 使星星排越来越短。

  3. 使数字行递增。

  4. 使数字行减少。

  5. 将减少的数字附加到增加的星星上。

  6. 将增加的数字附加到减少的星星上。

  7. 将5和6放在一起。

答案 1 :(得分:1)

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

        System.out.println(" ");
    }


    for (int i = 5; i > 0 ; i--) {
        for (int j = 1; j <=i ; j++) {
            System.out.print("*");
        }
        for (int k = i+1; k <= 5 ; k++) {
            System.out.print(k);
        }

        System.out.println(" ");
    }

我不知道这是否是最好的方法,但它似乎有效。 我会尝试另一种方式。总是好学。

答案 2 :(得分:1)

这应该有所帮助:

public static void printTree()
    {
        int index = 0;
        for(; index < 5; index++)
        {
            for(int j = 0; j < 5; j++)
            {
                if(j <= index)
                {
                    System.out.print("*");
                }
                else
                {
                    System.out.print(j + 1);
                }
            }
            System.out.println();
        }
        for(; index > 0; index--)
        {
            for(int j = 0; j < 5; j++)
            {
                if(j < index)
                {
                    System.out.print("*");
                }
                else
                {
                    System.out.print(j + 1);
                }
            }
            System.out.println();
        }
    }