#include <stdio.h>
#include <math.h>
#include <string.h>
int main(){
int t,k=1,tag;
while(scanf("%d",&t)){
getchar();
if(t==0){
break;
}
tag=1;
for(int j=0;j<t;j++){
char arr[2001]={0};
int x[2]={0},y[2]={0},z[2]={0}; //装x、y、z的系数与指数
gets(arr);
if(tag){
printf("Case #%d:\n",k++);
tag=0;
}
for(int v=2;v<strlen(arr);v+=6){
if(arr[v]=='X'){
x[0]+=arr[v-2]-'0';
x[1]=arr[v+2]-'0';
}
else if(arr[v]=='Y'){
y[0]+=arr[v-2]-'0';
y[1]=arr[v+2]-'0';
}
if(arr[v]=='Z'){
z[0]+=arr[v-2]-'0';
z[1]=arr[v+2]-'0';
}
}
if(x[1]>0){ //求导
x[0]*=x[1];
x[1]-=1;
}
if(y[1]>0){
y[0]*=y[1];
y[1]-=1;
}
if(z[1]>0){
z[0]*=z[1];
z[1]-=1;
}
if(x[0]>0){ //输出
if(x[1]>0)
printf("%d * X ^ %d",x[0],x[1]);
else if(x[1]==0) //x的指数为1,直接输出系数
printf("%d",x[0]);
if(y[0]>0)
printf(" + ");
else{ //y不输出,但还要输出z
if(z[0]>0)
printf(" + ");
}
}
if(y[0]>0){
if(y[1]>0)
printf("%d * Y ^ %d",y[0],y[1]);
else if(y[1]==0)
printf("%d",y[0]);
if(z[0]>0)
printf(" + ");
}
if(z[0]>0){
if(z[1]>0)
printf("%d * Z ^ %d",z[0],z[1]);
else if(z[1]==0)
printf("%d",z[0]);
}
printf("\n");
}
}
return 0;
}
[Jeremy Wu]群龙的飞行方程
最新推荐文章于 2022-03-20 17:43:42 发布