求助20pts
查看原帖
求助20pts
1232632
cclianlian楼主2024/6/11 17:04
using namespace std;
vector<string>vec;
string s;
int e;//e是指数
void solve() {
	int n; cin >> n;
	for (int i = 0; i <= n; i++) {
		cin >> s;
		if (s == "0") {
			continue;
		}
		if (i!=n&&s == "-1") {//-1和1在中间的特殊处理,删去系数的1
			s.erase(s.begin() + 1);
		}
		else if (i != n && s == "1") {
			s.clear();
		}

		e = n - i;
		if (s[0] != '-' && !vec.empty()) {//连接中间的+
			s.insert(s.begin(), '+');
		}
		if (e == 1) {
			s += "x";
		}
		if (e>1) {
			s += "x^";
			s.insert(s.end(), e + '0');
		}
		vec.push_back(s);
	}
	if (vec.empty()) {
		cout << "0";//防止全为0
	}
	for (int i = 0; i < vec.size(); i++) {
		cout << vec[i];
	}

}
int main(){
	std::ios::sync_with_stdio(false);
	std::cin.tie(0); std::cout.tie(0);
	solve();
	return 0;
}
2024/6/11 17:04
加载中...