View Code of Problem 11

#include<iostream>
using namespace std;
int main(){
	int d=0;
	int T;
	while(cin>>T){
			if(T==0){
			break;
		}
		getchar();
		while(T--){
		int sumx=0,sumy=0,sumz=0,cifangx=0,cifangy=0,cifangz=0;
		d++;
		string str;
		getline(cin,str);
		printf("Case #%d:\n",d);
		for(int i=0;i<str.size();i++){
			if(isalpha(str[i])){
				if(str[i]=='X'){
					sumx+=str[i-2]-'0';
					//cout<<sumx<<endl;
					cifangx=str[i+2]-'0';
					if(cifangx==0)cifangx=1;
				}
				if(str[i]=='Y'){
					sumy+=str[i-2]-'0';
					cifangy=str[i+2]-'0';
					if(cifangy==0)cifangy=1;
				}
				if(str[i]=='Z'){
					sumz+=str[i-2]-'0';
					cifangz=str[i+2]-'0';
					if(cifangz==0)cifangz=1;
				}
			}
		}
		if(sumx!=0){
			if(cifangx==1){
				printf("%d",sumx);
			}
			else{
				printf("%d * X ^ %d",cifangx*sumx,cifangx-1);
			}
		}
		if(sumy!=0){
			if(sumx==0){
				if(cifangy==1){
					printf("%d",sumy);
				}
				else{
					printf("%d * Y ^ %d",cifangy*sumy,cifangy-1);
				}
			}
			else{
				if(cifangy==1){
					printf(" + %d",sumy);
				}
				else{
					printf(" + %d * Y ^ %d",cifangy*sumy,cifangy-1);
				}
			}
		}
		if(sumz!=0){
			//cout<<sumz<<endl;
			if(sumx==0 && sumy== 0){
				if(cifangz==1){
					printf("%d",sumz);
				}
				else{
					printf("%d * Z ^ %d",cifangz*sumz,cifangz-1);
				}
			}
			else{
				if(cifangz==1){
					printf(" + %d",sumz);
				}
				else{
					printf(" + %d * Z ^ %d",cifangz*sumz,cifangz-1);
				}
			}
		}
		cout<<endl;
		}
	}
}

Double click to view unformatted code.


Back to problem 11