看我代码,AC你也可以
2025-12-14 19:26:25
发布于:广东
10阅读
0回复
0点赞
#include <iostream>
#include <climits>
using namespace std;
int main() {
int n;
cin >> n;
int a[105];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int ops = 0; // 操作次数计数器
while (true) {
// 检查数组是否全为0
bool allZero = true;
for (int i = 0; i < n; i++) {
if (a[i] != 0) {
allZero = false;
break;
}
}
if (allZero) break;
// 1. 找最大值(下标大的优先)
int maxVal = -1, k = -1;
for (int i = 0; i < n; i++) {
if (a[i] > maxVal || (a[i] == maxVal && i > k)) {
maxVal = a[i];
k = i;
}
}
// 2. 找最小非零值
int minVal = INT_MAX;
for (int i = 0; i < n; i++) {
if (a[i] > 0 && a[i] < minVal) {
minVal = a[i];
}
}
// 3. 执行减法操作
a[k] -= minVal;
ops++;
}
cout << ops << endl;
return 0;
}
这里空空如也

有帮助,赞一个