您的位置:首页 > 其它

UVa 10878 磁带解码

2014-01-27 15:03 393 查看
/*

* 解题思路:

*
此题就是简单的二进制码翻译成字符的题,转换一下即可。

* 注意:得到的字符串不用写换行符、因为得到的字符串中最后一位即为换行符!

*/

#include <stdio.h>
#include <math.h>
int main( )
{
int p,q,sum;
int i;
char ss[ 10000 ];
char  s[ 10000 ];
char c;

p = q = 0;
while( getchar( )!='\n' );
while( ( c=getchar( ) ) != '_' )
{
c = getchar( );
p = 0;
while( ( c = getchar( )) !='|' && c!='\n' && c!=EOF )
ss[ p++ ] = c;
getchar( );

sum = 0;
for( i=7;i>=0;i-- )
if( !(i-4) ) continue;
else if( ss[ i ] == 'o' && i>4 )
sum += pow( 2 , 7-i );
else if( ss[ i ] =='o' && i<4 )
sum += pow( 2 , 7-i-1);
s[ q++ ] = (char)( sum );
}
for( i=0;i<q;i++)
printf("%c",s[ i ] );
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: