#include<stdio.h> #include<string.h> int main(){ char w[30]; int a[20],c[20]; //定义三个数组分别存储系数、次数 int t; int k=0; while(scanf("%d",&t)&&t!=0) { getchar(); k++; printf("Case #%d:\n",k); while(t--){ gets(w); a[0]=c[0]=0; a[1]=c[1]=0; a[2]=c[2]=0; for(int i=0;i<strlen(w)-1;i++){ //储存对应XYZ的系数次数 if(w[i]=='X'){ w[i-2]=w[i-2]-'0'; w[i+2]=w[i+2]-'0'; a[0]=a[0]+w[i-2]; c[0]=w[i+2]; } if(w[i]=='Y'){ w[i-2]=w[i-2]-'0'; w[i+2]=w[i+2]-'0'; a[1]=a[1]+w[i-2]; c[1]=w[i+2]; } if(w[i]=='Z'){ w[i-2]=w[i-2]-'0'; w[i+2]=w[i+2]-'0'; a[2]=a[2]+w[i-2]; c[2]=w[i+2]; } } for(int i=0;i<3;i++){ if(c[i]==0&&a[i]!=0){ printf("%d",a[i]); } else if(a[i]==0) continue; else{ if(i==0) printf("%d * X ^ %d",a[i]*c[i],c[i]-1); else if(i==1) printf("%d * Y ^ %d",a[i]*c[i],c[i]-1); else printf("%d * Z ^ %d",a[i]*c[i],c[i]-1); } if(i==0){ if(a[i+1]!=0||a[i+2]!=0) printf(" + "); } else if(i==1){ if(a[i+1]!=0) printf(" + "); } } printf("\n"); } } } |
Double click to view unformatted code.