C++解决以下问题给定一个由 n 个正整数组成的数列,对数列进行一次操作:去除其中两项 a、b,然后添加一项 a×b+1。每操作一次数列减少一项,经 n−1 次操作后该数列只剩一个数。试求在 n-1 次操作后最后得数的最大值。 输入描述 多组输入,每组两行,第一行输入正整数 n,第二行输入 n 个正整数 n<20 输出描述 对每组输入,输出最后剩下的一个
时间: 2024-02-27 07:56:39 浏览: 98
C++函数编程20道习题汇总含其详细程序解答.doc
以下是 C++ 的实现代码:
```c++
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int n;
while (cin >> n) {
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
sort(nums.begin(), nums.end());
while (nums.size() > 1) {
int a = nums[nums.size()-2], b = nums[nums.size()-1];
nums.pop_back();
nums.pop_back();
nums.push_back(a*b+1);
sort(nums.begin(), nums.end());
}
cout << nums[0] << endl;
}
return 0;
}
```
输入多组数据,每组数据第一行是 n,第二行是 n 个正整数,输出每组数据最后剩下的一个数。
阅读全文