Keyword: ad hoc
Algorithm:
This problem needs knowledge of pointer manipulation.
If you're not familiar with it, you may want to read some materials first.
There are 4 functions, 2 with pointer addition/subtraction and 2 with dereferencing.
Implement those 4 ones and you're done with the manipulation part.
You can use printf( "%02X" ); to print hexadecimal numbers.
Code:
#include<cstdio> int main() { int t; char str[ 100000 ]; scanf( "%d\n", &t ); for( int i = 1; i <= t; ++i ) { unsigned char val[ 100000 ] = { 0 }, *ptr = val; gets( str ); printf( "Case %d:", i ); for( int k = 0; str[ k ]; ++k ) if( str[ k ] == '>' ) ptr = ptr == val+99? val : ptr+1; else if( str[ k ] == '<' ) ptr = ptr == val? val+99 : ptr-1; else if( str[ k ] == '+' ) ++*ptr; else if( str[ k ] == '-' ) --*ptr; for( int i = 0; i < 100; ++i ) printf( " %02X", val[ i ] ); puts( "" ); } return 0; }
沒有留言:
張貼留言