原题链接
题目描述
给定一个长度为 的数列, ,如果其中一段连续的子序列 ( ) 之和是 的倍数,我们就称这个区间 是
K 倍区间。
你能求出数列中总共有多少个 倍区间吗?
输入描述
第一行包含两个整数 和 ( )。
以下 N 行每行包含一个整数 ( )
输出描述
输出一个整数,代表 K 倍区间的数目。
输入输出样例
示例
输入
5 2
1
2
3
4
5
输出
6
解答代码:
import java.io.*;
import java.util.*;
/**
* @author Polaris
*
*/
import java.util.Scanner;
public class Main {
static int a[] = new int[100005];
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int x = scan.nextInt(), y = scan.nextInt();
int ans = 0;
for(int i = 1;i <= x;i ++) {
a[i] = scan.nextInt();
a[i] += a[i - 1];
}
for(int i = 0;i <= x;i ++) {
for(int j = i + 1;j <= x;j ++) {
if((a[j] - a[i]) % y == 0) {
ans ++;
}
}
}
System.out.println(ans);
}
}