对不起,我对编码有点陌生,但我被要求接受一个整数作为第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的中间值.如果我没有写错或格式化任何错误的东西,很抱歉,因为这是我在这里的第一篇帖子,但请让我知道我还能做什么.如果有任何帮助,我将不胜感激.

推荐答案

I have written something that works however I feel as though I am severely over complicating things.

看起来你想要减go 两项,增加两项,减go 两项,最后适当地减go 或增加一项或两项.

国际海事组织,最简单的方法是用arithemetic sum formula表示1+2+3+4.+n等于((n+1)*n)/2.当i变为偶数时,反转符号.

int n = 4;
int sum = 0;
int sign = -1;
for (int i = 1; i <= n; i++) {
    sum += sign*((i+1)*i)/2;
    if (i % 2 == 0) {
        sign = -sign;
    }
}
System.out.println(sum);

fingerprint

12

Java相关问答推荐

为什么JFrame paint()多次绘制同一点(或根本不绘制)?

我想了解Java中的模块化.编译我的应用程序时,我有一个ResolutionException

多个Java线程和TreeMap.put()的非预期行为

使用联接和分页的SpringBoot Spring数据JPA

我需要生成一个文件来整合每个特性执行的所有JSON结果

调用引发泛型异常的泛型方法时出现编译错误

Spring data JPA/Hibernate根据id获取一个列值

Com.google.firebase.database.DatabaseException:无法将类型为java.lang.Boolean的值转换为字符串.这是关于什么的?

如何在Application.yaml中连接字符串?

使用OAuth 2.0资源服务器JWT时的授权(授权)问题

如何从日期中截取时间并将其传递给组件?

与IntArray相比,ArrayList<;Int>;对于大量元素的性能极差

如何在Record Java中使用isRecord()和RecordComponent[]?

Java.time.OffsetDateTime的SQL Server数据库列类型是什么?

在Java Spring JPA中插入包含对其他实体的引用的列

Android上的SQLite:Android.database.SQLite.SQLiteReadOnlyDatabaseException:try 写入只读数据库(代码1032 SQLite_readonly_DBMOVED)

Spring Mapstruct如何获取Lazy初始化实体字段的信息?

Java 21保护模式的穷尽性

如何调查进程列表中不可见的活跃 MySQL 事务?

一条Java记录可以保存多少个字段?