You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java实现特定数列第n项计算的代码简化优化求助

简化数列计算的Java实现方案需求

我是编程新手,需要实现输入整数n,计算并输出数列 y = -(1)-(1+2)+(1+2+3)+(1+2+3+4)-(1+2+3+4+5)+…+(1+2+…+n) 的第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

现有实现的问题

我通过循环和count变量控制加减逻辑,每次循环处理两项,最后额外判断奇数n的情况,感觉逻辑冗余,希望得到更简洁的实现方案。

内容的提问来源于stack exchange,提问作者hussam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 12:23:20