我这个如果输入 2 1 1 就会出错,但是洛谷的判题机还是算我过了,希望后期能添加数据
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
int ans = 0;
cin >> n;
int s[n + 1];
for(int i = 0 ; i <= n ; i ++){
cin >> s[i];
}
for(int i = 0 ; i <= n ; i ++){
if(s[i] != 0) ans ++;
if(s[i] == 0) continue;
else if(s[i] == 1){
if(i == 0)cout << "x^" << n - i;
else if(i == n){
if(s[i] > 0) cout << '+' << s[i];
else cout << s[i];
}
else if(i == n - 1){
if(s[i] == 1){
cout << "+x";
}
else if(s[i] == -1){
cout << "-x";
}
else{
if(s[i] > 0){
cout << "+" << s[i] << "x";
}
else cout << s[i] << "x";
}
}
else cout << "+x^" << n - i;
}
else if(s[i] == -1){
if(i == n){
if(s[i] > 0) cout << '+' << s[i];
else cout << s[i];
continue;
}
else if(i == n - 1){
if(s[i] == 1){
cout << "+x";
}
else if(s[i] == -1){
cout << "-x";
}
else{
if(s[i] > 0){
cout << "+" << s[i] << "x";
}
else cout << s[i] << "x";
}
continue;
}
cout << "-x^" << n - i;
}
else{
if(i == 0){
cout << s[i] << "x^" << n - i;
}
else if(i == n - 1){
if(s[i] == 1){
cout << "+x";
}
else if(s[i] == -1){
cout << "-x";
}
else{
if(s[i] > 0){
cout << "+" << s[i] << "x";
}
else cout << s[i] << "x";
}
continue;
}
else if(i == n){
if(s[i] > 0) cout << '+' << s[i];
else cout << s[i];
continue;
}
else{
if(s[i] > 0) cout << '+' << s[i] << "x^" << n - i;
else cout << s[i] << "x^" << n - i;
}
}
}
if(ans == 0){
cout << 0 << endl;
}
}