#include #include #include bool waru( char *A ); bool aru( char *A ); bool tasu( char *A ); int main() { char A[100], B[100]; scanf( "%s %s\n", &A, &B ); while( strcmp( A, B ) ) { if( waru( A ) ) { printf("%s\n", A ); } else if( aru( A ) ) { printf("%s\n", A ); } tasu( A ); } if( waru( A ) ) { printf("%s\n", A ); } else if( aru( A ) ) { printf("%s\n", A ); } return 0; } bool waru( char *A ) { int sum = 0; for( int i = 0; A[i] != '\0'; i++ ) { sum += A[i] - '0'; } if( ( sum % 3 ) == 0 ) { return true; } else { return false; } } bool aru( char *A ) { for( int i = 0; A[i] != '\0'; i++ ) { if( A[i] == '3' ) { return true; } } return false; } bool tasu( char *A ) { int keta; bool crr; char tmp[1000]; int i; crr = false; keta = strlen( A ); if( A[keta-1] != '9' ) { A[keta-1] = A[keta-1] + 1; crr = false; } else { A[keta-1] = '0'; crr = true; } for( i = keta - 2 ; i >= 0; i -- ) { if( A[i] == '9' ) { if( crr == true ) { A[i] = '0'; crr = true; } } else { if( crr == true ) { A[i] += 1; crr = false; } } } if( crr == true ) { strcpy( tmp, A ); strcpy( A, "1" ); strcat( A, tmp ); } return true; }