#include #define N 10000 char A[N],B[N],C[N]; int a[N],b[N],c[N]; void calc1() { int l1 = strlen(A); int l2 = strlen(B); int z; char *q = C; if(l1==1 && *A=='0') l1 = 0; if(l2==1 && *B=='0') l2 = 0; z = l1+l2; if(!z) *(q++)='0'; while(z--) *(q++) = '1'; *q = 0; } int cislo(char c) { if(c>='A') return c-'A'+10; return c-'0'; } int base; char toChar(int i) { if(i>=10) return('A'+i-10); return '0'+i; } void calc() { int l1 = strlen (A); int l2 = strlen (B); int l = l1; int i,j; char *q=C; int carry = 0; if(l1>l2) l = l2; for(i=0;i=0;j--) *(q++) = toChar(c[j]) ; *q=0; } int main(void) { while(1) { scanf("%d",&base); if(base<1) break; scanf("%s%s",A,B); if(base==1) calc1(); else calc(); printf("%s + %s = %s\n",A,B,C); } return 0; }