TYVJ 1103 多项式输出 解题报告
纯模拟,考虑0啊,1啊,-1啊等的特殊情况就行了。。。
代码如下:
#include <stdio.h>
#include <stdlib.h>
const char xishu[2][4] = {"%+d", "%d"};
void output(int a, int b, int *c)
{
if(a == 0){
return;
}
if(b == 0){
printf(xishu[*c], a);
}else if(abs(a) == 1){
if(*c){
if(a == -1){
printf("-");
}
}else{
if(a == 1){
printf("+");
}else{
printf("-");
}
}
}else{
printf(xishu[*c], a);
}
//上面输出系数
if(b == 0){
return;
}else if(b == 1){
printf("x");
}else{
printf("x^%d", b);
}
//上面输出x
if(*c){
*c = 0;
}
}
int main(int argc, char **argv)
{
int i, j = 1;
int n, a;
scanf("%d", &n);
for(i = n; i >= 0; i--){
scanf("%d", &a);
if(i == n){
output(a, i, &j);
}else{
output(a, i, &j);
}
}
if(j){
printf("0");
}
printf("\n");
return 0;
}
浙公网安备 33010602011771号