gpt4 book ai didi

java - 在不使用迭代的情况下编写三角形数(算术级数的总和)

转载 作者:行者123 更新时间:2023-11-30 07:41:05 25 4
gpt4 key购买 nike

题目的基本思路是:

三角数是算术级数的总和,即 1,3,6,10,15..etc.(到达此为:1+0,1+2,​​1+2+3, 1+2+3+4, 1+2+3+4+5...等)

我已经使用迭代对以下问题进行了编码,没有它我该怎么办?

public class Test {
static int triangle(int n) {
int total = 0;
for (int index = 0; index < n + 1; index++) {
total = total + index;
}
return total;
}
public static void main(String args[]) {
for (int x = 1; x < 6; x++)
System.out.println(triangle(x));
}
}

输出是正确的,但我想要一个比我写的更好的解决方案。

O/P:

1
3
6
10
15

最佳答案

使用递归的解决方案:

public static void triangular(int start, int n){
if(start > n)
return;
int triangular = (start*(start+1))/2;
System.out.println(triangular);
triangular(start+1,n);
}

用法:

public static void main(String[] args) throws IOException {
int n = 5;
triangular(1,n);
}

OUTPUT: 1 3 6 10 15

任意数 n 的三角数 = (n*(n+1))/2。所以对于 n=5,它的三角数是 15。我使用这个公式应用了递归。

关于java - 在不使用迭代的情况下编写三角形数(算术级数的总和),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56555777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com