题解 | #多项式输出#
多项式输出
https://ac.nowcoder.com/acm/problem/16622
#include<stdio.h>
int main() {
int n;
int a[110];
scanf("%d", &n);//多项式的最高次数
for (int i = 0; i <= n; i++)
{
scanf("%d", &a[i]);
}//输入每次个项的常数
for (int i = 0; i <= n; i++) {
if (a[i] == 0)continue;//系数为0
if (i == 0)//首项
{
if (n != 0)//首项指数不为0,且首项指数不为1
{
if (a[i] != 1 && a[i] != -1) {
printf("%d", a[i]);
}
if (a[i] == -1)
{
printf("-");
}
//系数不为1或不为-1才输出系数,但-1要输出“-”
if (n != 1)
{
printf("x^");
printf("%d", n);
}//指数不为1才输出指数指数
else if (n == 1)
{
printf("x");//指数为1则不输出指数
}
}
else if (i == n)
{
printf("%d", a[i]);//若指数为0,直接输出系数,不管1或-1
}
}//首项
else//不是首项
{
if (a[i] > 0)
{
printf("+");//正数输出一个正号,无论系数是否为1
}
if (n - i != 0)//指数不为0
{
if (a[i] != 1 && a[i] != -1) {
printf("%d", a[i]);
}
if (a[i] == -1)
{
printf("-");
}//系数为1或-1不需要输出系数
if (n - i != 1)
{
printf("x^");
printf("%d", n - i);
}
else
{
printf("x");
}
}
else if (n - i == 0)//指数为0则输出系数即可
{
printf("%d",a[i]);
}
}
}return 0;
}