Когда серия суммирования реализована, происходит изменение желаемого результата.
Проблема в том, что
У Лили есть шоколадная плитка, которую она хочет поделиться с Роном своимдень рождения.Каждый из квадратов имеет целое число.Она решает разделить непрерывный сегмент выбранного столбца так, чтобы длина сегмента соответствовала месяцу рождения Рона, а сумма целых чисел на квадратах равна его дню рождения.Вы должны определить, сколько способов она может разделить шоколад.
Рассмотрите плитку шоколада как массив квадратов, s=2,2,1,3,2
.Она хочет найти отрезки, суммирующие день рождения Рона d=4
с длиной, равной месяцу его рождения m=2
.В этом случае есть два сегмента, соответствующих ее критериям: 2,2
и 3,1
.
Описание функции
Завершите функцию дня рождения в редакторе ниже.Он должен вернуть целое число, обозначающее количество способов, которыми Лили может делить плитку шоколада.
У дня рождения есть следующие параметры:
s
: массив целых чисел, числа накаждый из квадратов шоколада
d
: целое число, день рождения Рона
m
: целое число, месяц рождения Рона
Формат ввода
Первая строка содержитцелое число n, число квадратов в плитке шоколада.Вторая строка содержит разделенные пробелом целые числа s[I]
, числа на шоколадных квадратах где.В третьей строке записаны два целых числа через пробел: m
и d
, день рождения Рона и месяц его рождения.
Формат вывода
Выведите целое число, обозначающее общее число способов, которымиЛили может порционировать свою плитку шоколада, чтобы поделиться с Роном.
Пример ввода 0
5
1 2 1 3 2
3 2
Пример вывода 0
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);
}}
Я получаю вывод как 3 вместо 2. Как суммировать до d
условий?