洛谷 P1067 [NOIP 2009 普及组] 多项式输出(详解)c++
题目链接:P1067 [NOIP 2009 普及组] 多项式输出 - 洛谷
1.题目分析
1:5x^4,系数就是5,次项就是4
2:x^5 x^4 x^3 x^2 x
3:100x^5 -1x^4 1x^3 -3x^2 0x(省略删除) 10
4:100x^5是正数,不输出+号,-30x^3是负数,输出-
5:比如2次项的系数是1,输出x^2
2.算法原理
解法:根据题意模拟即可+分类讨论
一项一项输出,每一项关心三个部分:符号+数+次数
代码
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n; cin >> n;
//循环次数依次递减
for (int i = n; i >= 0; --i)
{
int a; cin >> a;
if (a == 0) continue; //处理系数为 0 的情况
//1.符号
if (a < 0) cout << '-';
else
{
if (i != n) cout << '+';
}
//2.数字
a = abs(a);
if (a != 1 || (a == 1 && i == 0)) cout << a;
//3.次数
if (i == 0) continue;
else if (i == 1) cout << 'x';
else cout << "x^" << i;
}
return 0;
}