对不起,我对编码有点陌生,但我被要求接受一个整数作为第n项的输入,并打印出这个模式的值,我已经写了一些可以工作的东西,尽管我觉得我已经严重地把事情复杂化了. 以下是正在讨论的系列:
和=-(1)-(1+2)+(1+2+3)+(1+2+3+4)-(1+2+3+4+5)….(1+2+3+4...+n)
以下是代码:
import java.util.Scanner;
public class wontwork {
public static void main(String[] args) {
Scanner np = new Scanner(System.in);
System.out.println("Enter n");
int n = np.nextInt();
int count = 1;
int sum = 0;
int y = 0;
for(int i = 1; i<=n ; i+=2) {
if(count%2==0) {
sum+=i;
y+=sum;
sum+=i+1;
y+=sum;
}
else {
sum+=i;
y-=sum;
sum+=i+1;
y-=sum;
}
count++;
}
if(n%2!=0) {
if (count%2==0) {
System.out.print(y+sum);
}
else {
System.out.print(y-sum);
}
}
else {
System.out.print(y);
}
np.close();
}
}
样本输出在输入4时应为12,在输入5时应为-3.
据我所知,它是减go 两次,再加上两倍的值的总和.我所做的是创建一个for循环,并获取一个count变量,该变量首先判断是加还是减,取决于它是奇数还是偶数,然后获取sum变量,以计算括号之间的值,并将其相加或相减为y.
但每次循环运行时,此过程都会发生两次.因此,当计数为奇数时,y在第一个循环中加-(1)和-(1+2),当计数为偶数时,在下一个循环中加(1+2+3)和(1+2+3+4).我之所以这样做,是因为如果我将(1+2+3)单独相加,计数为偶数,我还必须添加(1+2+3+4)并递增计数,但这会使计数变得奇怪,并且不再用于加法或减法.我讨厌如果我错过了一些明显的东西,但我想不出我的生活如何知道它何时增加两次,然后使它要么是积极的,要么是消极的.
出于这个原因,同样,如果不是因为结尾处的If Else语句,程序只是为每2n个输出正确的值,并修复我采用最后存储的总和值并判断count是奇数还是偶数,然后再用y将其相加或相减,以求n的中间值.如果我没有写错或格式化任何错误的东西,很抱歉,因为这是我在这里的第一篇帖子,但请让我知道我还能做什么.如果有任何帮助,我将不胜感激.