洛谷 P1067 [NOIP 2009 普及组] 多项式输出(详解)c++

题目链接:P1067 [NOIP 2009 普及组] 多项式输出 - 洛谷

1.题目分析

洛谷 P1067 [NOIP 2009 普及组] 多项式输出(详解)c++_第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.算法原理

解法:根据题意模拟即可+分类讨论
一项一项输出,每一项关心三个部分:符号+数+次数

洛谷 P1067 [NOIP 2009 普及组] 多项式输出(详解)c++_第2张图片

 代码

#include 
#include 
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;
}

你可能感兴趣的:(基础算法,算法)