0
点赞
收藏
分享

微信扫一扫

[NOIP2009 普及组] 多项式输出

孟佳 2022-04-04 阅读 68

📋 个人简介

🎉大家好,我是3月份新人榜排名第三的 ༺金龙༒凤凰༻ 😎
💬支持我:点赞👍+收藏⭐️+留言📝
🌺格言:**༺永做优质༒programmer༻**🔮

📣多项式输出

🔮题目描述
🥭一元n次多项式可用如下的表达式表示:

在这里插入图片描述
在这里插入图片描述
🥭输入格式

🥭输出格式

🌌输入输出样例

🍋输入 #1

5 
100 -1 1 -3 0 10

🍋输出 #1

100x^5-x^4+x^3-3x^2+10

🍋输入 #2

3 
-50 0 0 1 

🍋输出 #2

-50x^3+1 

💧说明/提示
💧NOIP 2009 普及组 第一题
在这里插入图片描述

💯CODE

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	scanf("%d",&n);
	int a[n+2],b[n+2];
	for(int i=0;i<=n;i++)
	{
		scanf("%d",&a[i]);
		b[i]=n-i;
	}
	for(int i=0;i<=n-2;i++)
	{ //这是对1到n-2项的处理
		if(a[i]>0&&i>=1)  //如果i==1代表是第一项,显然第一项是没必要输出“+”的。
			cout<<"+";
		if(a[i]!=0&&a[i]!=1&&a[i]!=-1)
		{
			cout<<a[i]<<"x^"<<b[i];
		}
		if(a[i]==1)
		{
			cout<<"x^"<<b[i];
		}
		if(a[i]==-1)
		{
			cout<<"-x^"<<b[i];
		}
	}
	if(a[n-1]!=0)
	{	//对第n-1项的处理
		if(a[n-1]<0)
		{
			if(a[n-1]!=-1)
				cout<<a[n-1]<<"x";
			if(a[n-1]==-1)
				cout<<"-"<<"x";	
		}
		if(a[n-1]>0)
		{
			if(a[n-1]!=1)
				cout<<"+"<<a[n-1]<<"x";
			if(a[n-1]==1)
				cout<<"+"<<"x";
		}
	}
	if(a[n]!=0)
	{	//对最后一项的处理
		if(a[n]<0)
			cout<<a[n];
		if(a[n]>0)
			cout<<"+"<<a[n];
	}
	return 0;
}

💎朋友们,点赞收藏是我更新的动力,明天再见,拜拜!🔥🔥🔥

举报

相关推荐

0 条评论