解题思路:
注意事项:
参考代码:
#include<stdio.h>
int main(){
int n,k,i;
scanf("%d%d",&n,&k);
int a[n],sum[n]; //这里的数组是用变量定义的,于是赋值必须用循环
long long int ans=0,b[k]; //数组b存储各剩余类个数,当k=1,数组b不是long long测试过不去
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<k;i++)
b[i]=0;
sum[0]=a[0];
b[a[0]%k]++;
for(i=1;i<n;i++){
sum[i]=(sum[i-1]+a[i])%k;
b[sum[i]]++;
}
for(i=0;i<k;i++){
ans+=b[i]*(b[i]-1)/2;
}
ans+=b[0];
printf("%lld",ans);
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)for循环浏览:1167 |
输出正反三角形 (C语言代码)浏览:853 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:465 |
WU-C语言程序设计教程(第三版)课后习题11.11 (C++代码)(想学链表的可以看看)浏览:1436 |
校门外的树 (C语言代码)浏览:728 |
【绝对值排序】 (C语言代码)浏览:890 |
字符逆序 (C语言代码)浏览:706 |
2006年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:722 |
小O的图案 (C语言代码)浏览:970 |
C语言程序设计教程(第三版)课后习题9.1 (C语言代码)浏览:640 |