CSP-202109-1-数组推导
解题思路
- 如果
currentValue
与previousValue
相同,说明这个值不是一个独特的新值,因此只将它加到sumTotal
上。 - 如果
currentValue
与previousValue
不相同,说明这是一个新的独特值,因此既将它加到sumTotal
也加到sumUnique
上。 - 更新
previousValue
为当前循环中的currentValue
,以便在下一次循环中使用。
#include <iostream>
using namespace std;
int main() {
int n, previousValue_B = 0, sumMin = 0, sumMax = 0;
cin >> n;
for (int i = 0; i < n; i++) {
int currentValue_B;
cin >> currentValue_B;
if (currentValue_B == previousValue_B) {
// 当前值与前一个值相同时,只增加到总和,不增加到唯一值的和中
sumMax += currentValue_B;
}
else {
// 当前值与前一个值不同时,既增加到总和也增加到唯一值的和中
sumMax += currentValue_B;
sumMin += currentValue_B;
}
previousValue_B = currentValue_B;
}
cout << sumMax << endl << sumMin;
return 0;
}