如何在Java中添加数字系列

如何在Java中添加数字系列,java,series,Java,Series,当执行求和序列时,所需输出发生变化 问题是: 莉莉有一块巧克力,她想在罗恩生日时与他分享。每个正方形上都有一个整数。她决定共享所选条形图的一个连续段,以便该段的长度与Ron的出生月份相匹配,并且平方上的整数之和等于他的出生日期。你必须确定她可以用多少种方法分巧克力 将巧克力棒视为一组正方形,s=2,2,1,3,2。她想找到罗恩出生日期的总和,d=4,长度等于他的出生月份,m=2。在这种情况下,有两个段符合她的标准:2,2和3,1 功能描述 在下面的编辑器中完成生日功能。它应该返回一个整数,表示L

当执行求和序列时,所需输出发生变化

问题是:

莉莉有一块巧克力,她想在罗恩生日时与他分享。每个正方形上都有一个整数。她决定共享所选条形图的一个连续段,以便该段的长度与Ron的出生月份相匹配,并且平方上的整数之和等于他的出生日期。你必须确定她可以用多少种方法分巧克力

将巧克力棒视为一组正方形,
s=2,2,1,3,2
。她想找到罗恩出生日期的总和,
d=4
,长度等于他的出生月份,
m=2
。在这种情况下,有两个段符合她的标准:
2,2
3,1

功能描述

在下面的编辑器中完成生日功能。它应该返回一个整数,表示Lily分割巧克力的方式

生日具有以下参数:

s
:一个整数数组,每个巧克力方块上的数字
d
:一个整数,罗恩的生日
m
:一个整数,罗恩的出生月份

输入格式

第一行包含一个整数n,即巧克力中的方块数。 第二行包含空格分隔的整数
s[I]
,即巧克力方块上的数字。 第三行包含两个空格分隔的整数,
m
d
,即罗恩的出生日期和出生月份

输出格式

打印一个整数,表示Lily可以将巧克力分成多少份与Ron共享

样本输入0

5
1 2 1 3 2
3 2
2
样本输出0

5
1 2 1 3 2
3 2
2
还有我的java代码

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;

import java.util.Scanner;
public class Solution {

public static void main(String args[])
{
  int a[] = new int[1000];
  Scanner s=new Scanner(System.in);
  int sum=0,count=0;
  int n=s.nextInt();
  for(int i=0;i<n;i++)
  {
    a[i]=s.nextInt();
  }
  int m=s.nextInt();
  int d=s.nextInt();
  for(int i=0;i<n;i++){ 
    for(int j=i;j<d+i;j++)
    {
      sum=sum+a[j];
      if(sum==m)
      {
        count++;

      }
    }sum=0; 
  }
  System.out.println(count);
}}
import java.io.*;
导入java.math.*;
导入java.security.*;
导入java.text.*;
导入java.util.*;
导入java.util.concurrent.*;
导入java.util.function.*;
导入java.util.regex.*;
导入java.util.stream.*;
导入java.util.Scanner;
公共类解决方案{
公共静态void main(字符串参数[])
{
整数a[]=新整数[1000];
扫描仪s=新的扫描仪(System.in);
整数和=0,计数=0;
int n=s.nextInt();
对于(int i=0;i试试这个

//n - amount of bars
//s - array of bars (s[i] - weight of each bar)
//d - Ron's birthday
//m - Ron's birthmonth

int answer = 0;
 // iterate bars
for (int k = 0; k < s.length; k += 1) {
     int sum = 0;
     // iterate bars month times
     for (int j = i; j < m + i; j += 1) {
         // count sum of weights month times
         sum += s[j];
     }
     // if counted sum is equal to amount of days
     // then it's +1 to possible ways!
     if (sum == d) {
        answer += 1;
     }
}
//n-条数
//s-棒材阵列(s[i]-每根棒材的重量)
//罗恩的生日
//罗恩的生日
int-answer=0;
//迭代条
对于(int k=0;k
在您的算法(如下所示)中,您在内部循环结束之前检查总和:

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;

import java.util.Scanner;
public class Solution {

public static void main(String args[])
{
  int a[] = new int[1000];
  Scanner s=new Scanner(System.in);
  int sum=0,count=0;
  int n=s.nextInt();
  for(int i=0;i<n;i++)
  {
    a[i]=s.nextInt();
  }
  int m=s.nextInt();
  int d=s.nextInt();
  for(int i=0;i<n;i++){ 
    for(int j=i;j<d+i;j++)
    {
      sum=sum+a[j];
      //THIS CHECK SHOULD BE OUTSIDE THE CURRENT FOR LOOP
      if(sum==m)
      {
        count++;

      }
    }sum=0; 
  }
  System.out.println(count);
}}
现在,由于阵列a的外观如下所示:

1 2 1 3 2 0 0 0 0 ... //till length 1000
您的算法将给出以下答案作为有效答案。实际上没有:

1 2 1 3 [2 0] 0 0 0 ... //till length 1000

因此,您的外部for循环应该只运行到第(n-d)个元素

侧栏:
inta[]=new int[n]
。不,这不起作用,我们需要迭代到d天,而不是mOoh月。在这种情况下,您只需使用d天,并对其进行迭代,我现在无法测试,但它应该可以为您的伴侣再加1!