View Code of Problem 11

#include<stdio.h>
#include<math.h>
#include<string.h>
//#include<algorithm>
#include <bits/stdc++.h>


int main() {
	int t;
	int k=1;
	while(scanf("%d",&t)) {
		getchar();
		if(t==0) {
			break;
		}
		printf("Case #%d:\n",k);
		for(int i=0; i<t; i++) {
			char str[1001];
			gets(str);
			int xxi=0,yxi=0,zxi=0;
			int xmi,ymi,zmi;
			for(int j=0; j<strlen(str); j++) {
				if(str[j]=='X') {
//					printf("%d\n",str[j-2]);
					xxi=xxi+str[j-2]-'0';
					xmi=str[j+2]-'0';
				} else if(str[j]=='Y') {
					yxi=yxi+str[j-2]-'0';
					ymi=str[j+2]-'0';
				} else if(str[j]=='Z') {
					zxi=zxi+str[j-2]-'0';
					zmi=str[j+2]-'0';
				}
			}
			if(xmi==0) {
				xmi=1;
			}
			if(ymi==0) {
				ymi=1;
			}
			if(zmi==0) {
				zmi=1;
			}
//			printf("%d %d %d %d %d %d\n",xxi,yxi,zxi,xmi,ymi,zmi);
			xxi=xxi*xmi;
			yxi=yxi*ymi;
			zxi=zxi*zmi;
			xmi--;
			ymi--;
			zmi--;


			if(xxi>0) {				//输出
				if(ymi>0)
					printf("%d * X ^ %d",xxi,xmi);
				else if(xmi==0)			//x的指数为1,直接输出系数
					printf("%d",xxi);
				if(yxi>0)
					printf(" + ");
				else {			//y不输出,但还要输出z
					if(zxi>0)
						printf(" + ");
				}
			}
			if(yxi>0) {
				if(ymi>0)
					printf("%d * Y ^ %d",yxi,ymi);
				else if(ymi==0)
					printf("%d",yxi);
				if(zxi>0)
					printf(" + ");
			}

			if(zxi>0) {
				if(zmi>0)
					printf("%d * Z ^ %d",zxi,zmi);
				else if(zmi==0)
					printf("%d",zxi);
			}
			printf("\n");

		}

		k++;
	}

}

Double click to view unformatted code.


Back to problem 11