一般般的模拟题,细心点就行,注意1和-1的情况,符号打印完后就把数取绝对值,开始的时候我的逻辑条件里只考虑了常数为1的情况,没考虑到-1,如果没去找测试数据的话估计会WA死。。思维死角真可怕
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a[9];
while (scanf("%d %d %d %d %d %d %d %d %d", &a[8], &a[7], &a[6], &a[5],
&a[4], &a[3], &a[2], &a[1], &a[0]) != EOF)
{
int is_zero = 1, is_first = 1, i;
for (i = 8; i >= 0; i--)
{
if (a[i])
{
is_zero = 0;
if (is_first)
{
is_first = 0;
printf(a[i] > 0 ? "" : "-");
}
else
printf(a[i] > 0 ? " + " : " - ");
if (abs(a[i]) == 1 && i == 0)
putchar('1');
else if (abs(a[i]) != 1)
printf("%d", abs(a[i]));
if (i)
{
putchar('x');
if (i > 1)
printf("^%d", i);
}
}
}
if (is_zero)
putchar('0');
putchar('\n');
}
return 0;
}