#include #include int max(int a,int b){if(a>b)return a;else return b;} void pm(char c,int n){for (;n>0;n--) printf("%c",c);} void plus(char*n1,char*n2,int l1,int l2){ int l;int i1,i2,c1,c2,cv,cp,iv; char v[510]; l=max(l1,l2+1); pm(' ',l-l1); printf("%s\n",n1); pm(' ',l-l2-1); printf("+%s\n",n2); pm('-',l); printf("\n"); iv=0;cp=0; for(i1=l1-1,i2=l2-1; i1>=0||i2>=0; i1--,i2--) { if (i1<0) c1=0;else c1=n1[i1]-'0'; if (i2<0)c2=0;else c2=n2[i2]-'0'; cv=c1+c2+cp; if(cv>9) {cp=1;cv-=10;}else cp=0; v[iv++]= cv+'0'; }/*for*/ if (cp==1) v[iv++]='1'; pm(' ',l-iv); for (iv--;iv>=0;iv--) printf("%c",v[iv]); printf("\n");} void minus(char*n1,char*n2,int l1,int l2){ int l;int i1,i2,c1,c2,cv,cp,iv; char v[510]; l=max(l1,l2+1); pm(' ',l-l1); printf("%s\n",n1); pm(' ',l-l2-1); printf("-%s\n",n2); pm('-',l); printf("\n"); iv=0;cp=0; for(i1=l1-1,i2=l2-1; i1>=0||i2>=0; i1--,i2--) { if (i1<0) c1=0;else c1=n1[i1]-'0'; if (i2<0)c2=0;else c2=n2[i2]-'0'; cv=c1-c2+cp; if(cv<0) {cp=-1;cv+=10;}else cp=0; v[iv++]= cv+'0'; }/*for*/ pm(' ',l-iv); for (iv--;iv>=0;iv--) printf("%c",v[iv]); printf("\n");}/*konec - */ void krat(char*n1,char*n2,int l1,int l2){ int cs, l;int i1,i2,c1,c2,cv,cp,iv;int ip,cp0;int mi1=0;int ml; char v[510];int byn[510]; char pp[510][510]; l=max(l1,l2+1); iv=0;cp0=0;ip=0; for(i2=l2-1; i2>=0; i2--) { iv=0; cp=0; for (i1=0;i1=0; i1--) { if (i1<0) c1=0;else c1=n1[i1]-'0'; if (i2<0)c2=0;else c2=n2[i2]-'0'; cv=c1*c2+cp; if(cv>=10) {cp=cv/10;cv%=10;}else cp=0; pp[ip][cp0+iv++]= cv+'0'; }/* for i1 */ if (cp>0) pp[ip][cp0+iv++]=cp+'0'; if(cp0+iv>mi1) mi1=iv+cp0; pp[ip][cp0+iv]=0; cp0++;ip++; }/*for*/ /* ted soucet */ iv=0;i1=0; for(i2=0;i2='0' && cs<='9')) cs-='0';else cs=0; cv += cs;} cv += cp; cp=cv/10; cv%=10; v[iv++]=cv+'0'; i1++; }while(i11) { ml=max(l1,l2+1); pm(' ',l-ml); pm('-',ml);printf("\n"); for (i2=0; i20 && pp[i2][i1-1]!=' ') pp[i2][i1--]=0; ml=i1+1; pm(' ',l-ml); for(i1=ml-1; i1>=0; i1--) printf("%c", pp[i2][i1]); printf("\n"); } /* konec for i2 */ } /* konec if l2>1 */ pm('-', l); printf("\n"); pm(' ', l-iv); for (iv--;iv>=0;iv--) printf("%c",v[iv]); printf("\n");}/*konec * */ int main(){ int ii, t,l1,l2; char*n1, *n2;char op; char s[1050];int i,j; scanf("%d", &t);gets(s); for (ii=0;ii='0' && s[i]<='9') i++; l1=i; op=s[i]; s[i]=0; n1=s; i++; j=i; n2=s+j; l2=strlen(n2); switch(op){ case '+': plus(n1,n2,l1,l2); break; case '-': minus(n1,n2,l1,l2); break; case '*': krat(n1,n2,l1,l2); break; } printf("\n"); } /*konec for*/ return 0; }