在下面的编辑器中完成 divisibleSumPairs 函数。它应该返回符合条件的对的整数计数。
divisibleSumPairs 具有以下参数:
n :数组 ar
ar :整数数组
k :将对和除以的整数
打印(i,j)对的数量,其中 i
我不知道怎么了,只有某些情况有效
static int divisibleSumPairs(int n, int k, int[] ar) {
int count = 0;
for (int i=0; i<n; i++){
for (int j=0; j<n; j++){
if ((ar[i]<ar[j]) && ((ar[i]+ar[j])%k)== 0){
count++;
}
}
}
return count;
}
答案 0 :(得分:0)
主要问题是您检查 ar [i]
static int divisibleSumPairs(int n, int k, int[] ar) {
int count = 0;
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++){
if (i < j && (ar[i] + ar[j]) % k == 0) {
count++;
}
}
}
return count;
}
该算法可以进一步优化为:
static int divisibleSumPairs(int n, int k, int[] ar) {
int count = 0;
for (int i = 0; i < n; i++){
for (int j = i + 1; j < n; j++){
if ((ar[i] + ar[j]) % k == 0) {
count++;
}
}
}
return count;
}