我编写了程序来打印一个三角形的星星,并且星星的总和形成了三角形。当我拨打电话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
请指教。
答案 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;
}