记录编号 381084 评测结果 AAAAAAAAAA
题目名称 [NOIP 2009PJ]多项式输出 最终得分 100
用户昵称 Gravatarfate1 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2017-03-10 20:24:43 内存使用 0.31 MiB
显示代码纯文本
#include<iostream>
#include<cstdio> 
int f[101]={0};
using namespace std;
int main () 
{
	freopen("poly.in","r",stdin);
    freopen("poly.out","w",stdout);
	int a,l=0,ans=0;
	cin>>a;
	for(int i=a;i>=0;i--)
	{
		int k;
		cin>>k;
		f[i]+=k;
	}
	for(int i=a;i>=2;i--)
	{
		if(f[i]!=0)
		{
			l=i;
			ans++;
			if(f[l]==1)
			{
				cout<<"x^"<<i;
			}
			if(f[l]==-1)
			{
				cout<<"-"<<"x^"<<i;
			}
			if(f[l]!=1&&f[l]!=-1)
			{
                cout<<f[l]<<"x^"<<i;
			}				
			break;
		}
	}
	if(ans>0)
	{
		for(int i=l-1;i>=2;i--)
		{
			if(f[i]>1)
				cout<<"+"<<f[i]<<"x^"<<i;
			if(f[i]==1)
				cout<<"+"<<"x^"<<i;
			if(f[i]<-1)
				cout<<f[i]<<"x^"<<i;
			if(f[i]==-1)
				cout<<"-"<<"x^"<<i;
		}
		if(f[1]>1)
			cout<<"+"<<f[1]<<"x";
		if(f[1]<-1)
			cout<<f[1]<<"x";
		if(f[1]==1)
			cout<<"+"<<"x";
		if(f[1]==-1)
			cout<<"-"<<"x";
		if(f[0]>0)
			cout<<"+"<<f[0];
		if(f[0]<0)
			cout<<f[0];
	}
	if(ans==0)
	{
		if(f[1]>1)
			cout<<"+"<<f[1]<<"x";
		if(f[1]<-1)
			cout<<f[1]<<"x";
		if(f[1]==-1)
			cout<<"-"<<"x";
		if(f[1]==1)
			cout<<"+"<<"x";
		if(f[0]>0)
			cout<<"+"<<f[0];
		if(f[0]<0)
			cout<<f[0];
	}
}