#include #include #define MAX 1000 long cislo( char *s, long zaklad ) { long c, i; c = 0; for ( i = 0; s[ i ]; i++ ) { if ( s[ i ] <= '9' ) { c = c * zaklad + s[ i ] - '0'; } else { c = c * zaklad + upper( s[ i ] ) - 'A' + 10; } } return c; } char vysledok[ MAX + 2 ]; char *string( long cislo, long zaklad ) { long c; char *s; if ( !cislo ) return "0"; s = vysledok + MAX + 1; *s = 0; while ( cislo ) { c = cislo % zaklad; cislo = cislo / zaklad; s--; if ( c > 9 ) { *s = 'A' + c - 10; } else { *s = '0' + c; } } return s; } int main( void ) { long zaklad, i; char s1[ MAX + 1 ], s2[ MAX + 1 ]; long c1, c2; while ( 1 ) { scanf( "%ld\n", &zaklad ); if ( !zaklad ) return 0; scanf( "%s %s\n", s1, s2 ); if ( zaklad == 1 ) { printf( "%s + %s = ", s1, s2 ); for ( i = strlen( s1 ) + strlen( s2 ); i > 0; i-- ) printf( "1" ); printf( "\n" ); } else { c1 = cislo( s1, zaklad ); c2 = cislo( s2, zaklad ); printf( "%s + %s = %s\n", s1, s2, string( c1 + c2, zaklad ) ); } } }