切!简单题
2025-08-31 16:08:04
发布于:浙江
4阅读
0回复
0点赞
不是这题是干什么的?太简单了,还什么“普及/提高-”。
主要的思路如下:
1.先把所有数据都累加起来,
2.在从大到小排序,
3.然后再把老王的工作时间(sum)减去(次)最大,
4.把小王的工作时间(sum1)加上(次)最大,
5.直到小王的工作时间>老王的工作时间,并且到边缘了,
6.结束循环,
7.最后输出次数。
如果实在写不出来的话,请看如下代码:
#include <bits/stdc++.h>//万能头文件
using namespace std;
int a[105];//定义数组
bool cmp (int a, int b){
return a > b;
}//排序要求,一般是(cmp)函数
int main () {
int n , sum=0 , sum1=0 , j=0 , cnt=0;//定义变量
cin >> n;
for (int i = 1;i <= n;i++){
cin >> a[i];
sum += a[i];//循环累加
}
sort(a + 1 , a + 1 + n,cmp);//排序
while (sum1 <= sum && j < n) {
int l = ++j;
sum -= a[l];
sum1 += a[l];
cnt ++;
}//进行3.~6.的步骤
cout << cnt;//输出次数
return 0;
}
很简单吧?!
这里空空如也
有帮助,赞一个