View Code of Problem 11

#include<stdio.h>
#include<string.h>

int main(void){
	int t,count=1;
	while(scanf("%d",&t)!=EOF){
		if(t==0) break;
		getchar();
		int flag1=1;
		while(t--){
			char s[2000];
			int a=0,b=0,c=0,flag=1;
			int n1=0,n2=0,n3=0;
			gets(s);
			int len = strlen(s);
			for(int i = 2; i+3<= len; i += 6)
				switch(s[i])
				{
					case 'X':a+=s[i-2]-48;
							n1=s[i+2]-48;
							break;
					case 'Y':b+=s[i-2]-48;
							n2=s[i+2]-48;
							break;
					case 'Z':c+=s[i-2]-48;
							n3=s[i+2]-48;
							break;
				}
			if(flag1)
			{
				printf("Case #%d:\n", count++);
				flag1=0;
			}
			if(n1!=0&&a!=0){
				a*=n1;
				n1--;
				printf("%d * X ^ %d",a,n1);
			}else if(a==0){
				flag=0;
			}else{
				printf("%d",a);
			}
			
			if(n2!=0&&b!=0)
			{
				if(flag)
					printf(" + ");
				flag=1;
				b*=n2;
				n2--;
				printf("%d * Y ^ %d",b,n2);
			}
			else if(n2==0&&b!= 0)
			{
				if(flag)
					printf(" + ");
				flag=1;
				printf("%d",b);
			}
		    
			if(n3!=0&&c!=0)
			{
				if(flag)
					printf(" + ");
				c*=n3;
				n3--;
				printf("%d * Z ^ %d\n",c,n3);
			}	
			else if(c==0)
				printf("\n");
			else
			{
				if(flag)
					printf(" + ");
				printf("%d\n",c);
			}
		}
	}
}

Double click to view unformatted code.


Back to problem 11