• 这题比较简单,要分好几部分,每个部分的情况
  1. 正负号输出,首项以外大于0都输出‘+’,小于0都输出‘-’;
  2. 系数输出,别忘记1的情况,除了最后一项为1输出外,其他都项都不输出‘1’,其余全都输出系数绝对值;
  3. x次数输出,注意的是最后一项不输出和次数为1时只输出x;
  • 代码如下
#include <iostream>
#include<string>
#include<cstdio>
#include<cmath>
using namespace std;

int  main()
{
	int n;
	int first;
	cin >> n;
	for (int i = n; i >= 0; i--)
	{
		cin >> first;
		if (first == 0)//为0继续循环
			continue;
		if (i != n && first>0)//首项以外大于0都输出‘+’
			printf("+");
		else if (first<0 )//小于0都输出‘-’
			printf("-");
		if (abs(first) == 1 && i == 0)//除了最后一项为1输出
			printf("1");
		else if(abs(first)!=1)//其余全都输出系数绝对值
			printf("%d", abs(first));
		if (i > 1)//注意的是最后一项不输出和次数为1时只输出x
			printf("x^%d", i);
		else if (i == 1)
			printf("x");
	}
	return 0;
}