#include <stdio.h> #include <string.h> typedef struct{ int coefficient;//系数 int character;//字母 int exponential;//指数 }Monomial;//单项式 int fun(Monomial m){ int coefficient; int exponential; if(m.exponential!=-1&&m.coefficient!=0){ if(m.exponential==0||m.exponential==1){ coefficient = m.coefficient; printf("%d",coefficient); }else{ coefficient = m.coefficient*m.exponential; exponential = m.exponential-1; printf("%d * %c ^ %d",coefficient,m.character,exponential); } return 1; } return 0; } int main(){ int t,count=1; char s[2000]; while(scanf("%d",&t)!=EOF&&t!=0){ getchar(); printf("Case #%d:\n",count++); for(int i=0;i<t;i++){ scanf("%[^\n]",s); getchar(); Monomial m[3]; m[0].character='X'; m[1].character='Y'; m[2].character='Z'; for(int j=0;j<3;j++){ m[j].coefficient=0; m[j].exponential=-1; } for(int j=2;j<strlen(s);j+=6){ m[s[j]-'X'].coefficient+=s[j-2]-'0'; m[s[j]-'X'].exponential=s[j+2]-'0'; } fun(m[0]); if(m[1].exponential!=-1){ if(m[0].exponential!=-1){ printf(" + "); } fun(m[1]); } if(m[2].exponential!=-1){ if(m[0].exponential!=-1||m[1].exponential!=-1){ printf(" + "); } fun(m[2]); } printf("\n"); } } } |
Double click to view unformatted code.