求助 思路分类讨论第一位中间倒数第二位末位
查看原帖
求助 思路分类讨论第一位中间倒数第二位末位
496669
goldcookfzy楼主2022/3/22 12:30
#include<bits/stdc++.h>

using namespace std;

int a[100+5],n;

int main()

{

	scanf("%d",&n);

	for(int i=1;i<=n+1;i++)

	{

		scanf("%d",&a[i]);

		if(i==1)

		{

			if(a[i]==0) continue;

			else if(a[i]==1)

			{

				if(n==0) cout<<1;

				else if(n==1) cout<<'x';

				else cout<<"x^"<<n-i+1;	

			}

			else if(a[i]==-1)

			{

				if(n==0) cout<<-1;

				else if(n==1) cout<<"-x^";

				else cout<<"-x^"<<n-i+1;	

			}

			else if(a[i]>1||a[i]<-1)

			{

				if(n==0) cout<<a[i];

				else if(n==1) cout<<a[i]<<'x';

				else cout<<a[i]<<"x^"<<n-i+1;

			}

		}

		else if(i>1&&i<n)

		{

			if(a[i]==0) continue;

			else if(a[i]>0)

			{

				cout<<'+';

				if(a[i]==1)

				{

					if(n==0) cout<<1;

					else if(n==1) cout<<'x';

					else cout<<"x^"<<n-i+1;	

				}

				else if(a[i]>1)

				{

					if(n==0) cout<<a[i];

					else if(n==1) cout<<a[i]<<'x';

					else cout<<a[i]<<"x^"<<n-i+1;

				}

				else if(a[i]==-1)

				{

					if(n==0) cout<<-1;

					else if(n==1) cout<<"-x";

					else cout<<"-x^"<<n-i+1;

				}

				else if(a[i]<-1)

				{

					if(n==0) cout<<a[i];

					else if(n==1) cout<<a[i]<<'x';

					else cout<<a[i]<<"x^"<<n-i+1;

				}

			}

			else if(i==n)

			{

				if(a[i]==0) continue;

				else if(a[i]>0)

				{

					cout<<'+';

					if(a[i]==1) cout<<'x';

					else if(a[i]>1) cout<<a[i]<<'x';

				}

				else if(a[i]<0)

				{

					if(a[i]==-1) cout<<"-x";

					else if(a[i]<-1) cout<<a[i]<<'x';

				}

			}

			else if(i==n+1)

			{

				if(a[i]==0) return 0;

				else if(a[i]>0) cout<<"+x";

				else if(a[i]<0) cout<<a[i]<<'x';

			}

		}

	}

	return 0;

}
2022/3/22 12:30
加载中...