Untitled
unknown
plain_text
2 years ago
1.8 kB
10
Indexable
#include<stdio.h>
int print(int p, int e, int idx){
char x[10];
if (e==0) sprintf(x,"");
else if (e==1) sprintf(x,"x");
else sprintf(x,"x^%d",e);
if(idx==0) { // first
if(e==0) {
if (p== 1) printf("1");
else if (p== 0) printf("0");
else if (p==-1) printf("-1");
else printf("%d",p);
}
else{
if (p== 1) printf("%s",x);
else if (p== 0) printf("0");
else if (p==-1) printf("-%s",x);
else printf("%d%s",p,x);
}
} else {
if(e==0) {
if (p> 1) printf(" + %d%s",p,x);
else if (p== 1) printf(" + 1");
else if (p== 0) ; // impossible
else if (p==-1) printf(" - 1");
else printf(" - %d%s",-p,x);
} else {
if (p> 1) printf(" + %d%s",p,x);
else if (p== 1) printf(" + %s",x);
else if (p== 0) ;
else if (p==-1) printf(" - %s",x);
else printf(" - %d%s",-p,x);
}
}
}
int main() {
int a[9];
int i;
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 p[9]; //polyn
int e[9]; //exp
int pos=0;
for(i=8;i>=0;i--){
if(a[i]!=0 || (i==0 && pos==0) ){
p[pos]=a[i];
e[pos]=i;
pos++;
}
}
for(i=0;i<pos;++i) {
//printf("(%d %d) ", p[i], e[i]);
print(p[i], e[i], i);
}
printf("\n");
}
return 0;
}
Editor is loading...
Leave a Comment