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
相关产品推荐
相关产品推荐

