Sinto muito, sou meio novo em codificação, mas me pediram para pegar um número inteiro como entrada para o enésimo termo e imprimir o valor desse padrão, e escrevi algo que funciona da maneira que sinto, como se eu estou muito complicando as coisas. Aqui está a série em questão:
y = -(1)-(1+2)+(1+2+3)+(1+2+3+4)-(1+2+3+4+5) .... (1+2 +3+4...+n)
Aqui está o código:
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();
}
}
Uma saída de amostra deve fornecer 12 quando a entrada 4 e -3 quando a entrada 5.
Pelo que entendi é subtrair duas vezes e somar duas vezes a soma dos valores. E o que eu fiz foi criar um loop for e pegar uma variável de contagem que verifica se deve primeiro adicionar ou subtrair dependendo se é ímpar ou par e então pegar uma variável de soma para calcular os valores de cada iteração entre colchetes e adicionar ou subtraímos isso para y.
Mas para cada vez que o loop é executado, esse processo acontece duas vezes. Então y é adicionado por -(1) e -(1+2) o primeiro loop quando a contagem é ímpar e depois por (1+2+3) e (1+2+3+4) no próximo quando a contagem é par. Eu fiz isso porque se eu somar digamos (1+2+3) individualmente sendo a contagem par, tenho que somar também (1+2+3+4) e incrementar a contagem, porém, isso a torna ímpar, e é não é mais útil usar isso para adicionar ou subtrair. Eu odiaria se estivesse faltando algo óbvio, mas não consigo descobrir de que outra forma saber quando é incrementado duas vezes para torná-lo positivo ou negativo.
Por esse motivo, também, se não fosse pela instrução if else no final, o programa apenas gera os valores corretos para cada 2n e para corrigir isso peguei o último valor da soma armazenado e verifiquei se a contagem é ímpar ou par e então adicionei ou subtraído novamente com y para encontrar o valor médio de n. Peço desculpas se não escrevi ou formatei nada incorretamente, pois este é meu primeiro post aqui, mas deixe-me saber o que mais posso fazer. Eu apreciaria qualquer ajuda.