洛谷没发现我代码的错误,看来还是数据量太少了
查看原帖
洛谷没发现我代码的错误,看来还是数据量太少了
340603
陈家小仙男楼主2020/11/17 13:44

我这个如果输入 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;
	}
}
2020/11/17 13:44
加载中...