使用Java生成系列,
1*3*5 + 2*5*8 + 3*7*11 ......
并显示总和.
我试过这种方式,但没有奏效.有没有更好的算法来生成这个系列?
public static void main(String[] args) {
int sum1 = 1;
int sum2 = 0;
int sum3 = 0;
int num = 0;;
for(int i=1; i<5; i++) {
for(int j=1; j<3; j++) {
for(int k=1; k <= i+1; k++) {
num++;
}
sum1 *= num;
}
sum2 += sum1;
}
}
Run Code Online (Sandbox Code Playgroud)
由于您需要生成一系列N个元素的总和,因此您只需要一个循环(不需要嵌套循环).
您应该注意到系列的元素可以计算为:
Element(1) = 1 * 3 * 5
...
Element(i) = i * j * k
Element(i+1) = (i+1) + (j+2) * (k+3)
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用3个变量来计算要添加到总和中的当前元素.
int sum = 0;
int j = 3;
int k = 5;
for(int i = 1; i <= N; i++) {
sum += i * j * k;
j+=2;
k+=3;
}
Run Code Online (Sandbox Code Playgroud)
要么
int sum = 0;
for(int i = 1, j = 3, k = 5; i <= N; i++, j+=2, k+=3) {
sum += i * j * k;
}
Run Code Online (Sandbox Code Playgroud)