解题思路:从最大的数开始枚举,如果遇到小的满足条件的数直接跳出循环
注意事项:
参考代码:
#include <bits/stdc++.h> using namespace std; int n,m,sum,a[100001]; bool cmp(int x,int y){ return x>y; } int main(){ cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ for(int k=j+1;k<=n;k++){ if((a[i]+a[j]+a[k])%m==0){ if(a[i]+a[j]+a[k]<=sum) break; else sum=a[i]+a[j]+a[k]; } }if(a[i]+a[j]+a[3]<=sum) break; }if(a[i]+a[2]+a[3]<=sum) break; } cout<<sum; return 0; }
0.0分
2 人评分
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:383 |
单词个数统计 (C语言代码)浏览:1046 |
筛排处理 (C语言代码)浏览:830 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:581 |
printf基础练习 (C语言代码)浏览:2268 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:504 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1359 |
求圆的面积 (C++代码)浮点数有误差!!!浏览:724 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:514 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:714 |