蓝桥杯好题推荐--多项式输出
🌈个人主页: 羽晨同学
💫个人格言:“成为自己未来的主人~”
题目链接
P1067 [NOIP 2009 普及组] 多项式输出 - 洛谷
解题思路
这种题目大多属于模拟题,这种是算法题目中较为简单的题目,这种情况,最重要的就是分类讨论,确保每种情况都被考虑到,保证不会重复,不会缺漏,不要直接就上来写,否则会遇到一堆错误。
这个就是这道题目,基本的情况,对应我们的代码也分这三种情况来写。
代码实现
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=n;i>=0;i--)
{
int x;cin>>x;
if(x==0) continue;
//符号
if(x<0) cout<<"-";
else
{
if(i!=n) cout<<"+";
}
//数字
x=abs(x);
if(x==1&&i==0) cout<<"1";
else
{
if(x!=1) cout<<x;
}
//指数
if(i==1) cout<<"x";
else if(i==0) continue;
else cout<<"x^"<<i;
}
return 0;
}
你看,根据前面的解题思路,我们就可以分成三个部分来完成我们的代码,在数字处理的时候,为了防止符号对数字的影响,所以我们可以对输入的值取绝对值,这样就可以避免正负号对x的影响。
好了,今天的内容就到这里,我们明天再见。