如何制作星形三角形并计算星数?

时间:2016-11-05 03:01:27

标签: java

我编写了程序来打印一个三角形的星星,并且星星的总和形成了三角形。当我拨打电话tringle(3)时,它应该打印如下,

***
**
*

而且,它也应该计算sum as 6并返回它。但是,代码无法正常工作,我提供了以下内容,

public static int triangular(int n) {
    int count = 0;
    count =  triangular(n, count);
    return count;
}

public static int triangular(int n, int count_){
    int count = count_;
    if(n == 0)
        return count;
if(n < 0)
    return -1;

for (int i = 0; i < n; i++) {
    System.out.print("* ");
    count = count + 1 ;
    if(i == n){
        return triangular(n-1, count);
    }
}
System.out.println();
return count; 
 }

我如何改进代码?现在,打印

* * * 
3

请指教。

3 个答案:

答案 0 :(得分:4)

您不需要多个参数... 3 + 2 + 1 + 0 = 6.

{{1}}

答案 1 :(得分:1)

这是一种迭代方法。此外,可以使用公式n(n+1)/2

计算星数
public static int triangular(int n) {
    for (int i = 0; i < n; i++) {
        for (int j = i; j < n; j++) {
            System.out.print("*");
        }
        System.out.println();
    }
    return n * (n + 1) / 2;
}

三角形(4):

****
***
**
*
10

答案 2 :(得分:0)

for循环有问题,我更改了代码。它现在工作正常,现在是:

public static int triangular(int n) {

        int count = 0;
        count =  triangular(n, count);

        return count;
    }

    public static int triangular(int n, int count_){

        int count = count_;

        if(n == 0)
            return count;

        if(n < 0)
            return -1;

        for (int i = 0; i < n; ) {

            System.out.print("* ");

            count = count + 1 ;
            i++;

            if(i == n){

                System.out.println();

                return triangular(n-1, count);
            }
        }
        return count; 
    }