POJ1555-Polynomial Showdown
http://poj.org/problem?id=1555
我再也不想写if-else了。。。。。
#include<stdio.h> int main(void) { int i,low,high,flag,num[9]; while(scanf("%d%d%d%d%d%d%d%d%d",&num[8],&num[7],&num[6],&num[5],&num[4],&num[3],&num[2],&num[1],&num[0])!=EOF) { flag=1; low=0; while(num[low]==0&&low<9) low++; high=8; while(num[high]==0&&high>=0) high--; if(low>high) { printf("0\n"); continue; } for(i=high;i>=low;i--) { if(num[i]!=0) { if(flag==1) { flag=0; if(i==0) printf("%d",num[i]); else if(i==1) { if(num[i]==-1) printf("-x"); else if(num[i]==1) printf("x"); else printf("%dx",num[i]); } else { if(num[i]==-1) printf("-x^%d",i); else if(num[i]==1) printf("x^%d",i); else printf("%dx^%d",num[i],i); } } else { if(num[i]>0) { if(num[i]==1) { if(i==0) printf(" + 1"); else if(i==1) printf(" + x"); else printf(" + x^%d",i); } else { if(i==0) printf(" + %d",num[i]); else if(i==1) printf(" + %dx",num[i]); else printf(" + %dx^%d",num[i],i); } } else { if(num[i]==-1) { if(i==0) printf(" - 1"); else if(i==1) printf(" - x^"); else printf(" - x^%d",i); } else { if(i==0) printf(" - %d",0-num[i]); else if(i==1) printf(" - %dx",0-num[i]); else printf(" - %dx^%d",0-num[i],i); } } } } } printf("\n"); } return 0; }