#include #include int hodn(char c) { if (c>='0'&&c<='9') return c-'0'; else return c-'A'+10; } char cislo(int c) { if ((c>=0)&&(c<=9)) return c+'0'; else return c+'A'-10; } char sec(char a,char b,char &chp,int z){ int k,l,m; int vysl=0; k=hodn(a); l=hodn(b); m=hodn(chp); vysl=k+l+m; chp=cislo(vysl/z); return cislo(vysl%z); // print } void fce(char a[1050],int da,char b[1050],int db,int z) { int zero=0; char pole[1100]; char cha,chb,chp='0'; int ia,ib; for (int i=0;i<=da;i++){ ia=da-i-1; ib=db-i-1; cha=a[ia]; chb=b[ib]; if (i==da){cha=chb='0';} if (i>=db){chb='0';} pole[i]=sec(cha,chb,chp,z); } for (int i=da;i>=0;i--) { if(i==da && pole[i]=='0'); else { if (zero==0 && pole[i]=='0'); else { printf("%c",pole[i]); zero=1; } } } if (zero==0) printf("%c",'0'); printf("\n"); } void secti(int z) { char a[1050]; char b[1050]; int da=0; int db=0; scanf("%s %s",a,b); da=strlen(a); db=strlen(b); printf("%s + %s = ",a,b); if (z==1){ for (int l=0; l=db) fce(a,da,b,db,z); else fce(b,db,a,da,z); } } int main() { int s=1; while (s!=0){ scanf("%i",&s); if (s!=0) secti(s); } return 0; } //end main