UVA 213(文字入力+符号化)
1144 ワード
タイトルリンク
タイトル:
文字列を指定し、文字コードを0、00、01、10、0000010110011011100000、......
符号化の長さは8を超えてはならない.
文字列を入力し、符号化列を指定して文字列の内容を求めます.
エンコーディング・カラムのフォーマットは次のとおりです.
001(最初の3桁は文字列の長さ)、次いでいくつかの文字列であり、各文字列は1111全1で終了し、結果は計算されない.
1つの文字列は000で終わり、入力が終了したことを示します.注意:入力された符号化は、同じ行でなくてもよい.
対応する文字を出力します.
考え方:
文字列入力はスペースまたはリターンで終わるので、文字入力の方法を採用できます.
注意入力した文字列の長さは、すべての符号化数の合計を超えてはいけません.
2次元配列記録文字a[i][j]は、文字符号化の長さiを表し、すべての長さiの文字符号化におけるj番目のビットデータはa[i][j]である.
次に符号化を入力し、最初の3ビットの記録文字が符号化された長さlenを入力し、その後、長さlenの文字列を読み込むたびに、
この行の符号化に対応する文字を印刷します.
注:Print出力結果を使用してコードをデバッグできます.
タイトル:
文字列を指定し、文字コードを0、00、01、10、0000010110011011100000、......
符号化の長さは8を超えてはならない.
文字列を入力し、符号化列を指定して文字列の内容を求めます.
エンコーディング・カラムのフォーマットは次のとおりです.
001(最初の3桁は文字列の長さ)、次いでいくつかの文字列であり、各文字列は1111全1で終了し、結果は計算されない.
1つの文字列は000で終わり、入力が終了したことを示します.注意:入力された符号化は、同じ行でなくてもよい.
対応する文字を出力します.
考え方:
文字列入力はスペースまたはリターンで終わるので、文字入力の方法を採用できます.
注意入力した文字列の長さは、すべての符号化数の合計を超えてはいけません.
2次元配列記録文字a[i][j]は、文字符号化の長さiを表し、すべての長さiの文字符号化におけるj番目のビットデータはa[i][j]である.
次に符号化を入力し、最初の3ビットの記録文字が符号化された長さlenを入力し、その後、長さlenの文字列を読み込むたびに、
この行の符号化に対応する文字を印刷します.
注:Print出力結果を使用してコードをデバッグできます.
#include
#include
#include
using namespace std;
int code[8][1<<8];
int readchar() // , ,
{
for(;;){
int v=getchar();
if(v!='
'&&v!='\r') return v;
}
}
int readint(int len)
{
int v=0;// len v
while(len){
v=v*2+readchar()-'0';len--;
}
return v;
}
int readcode() //
{
memset(code,0,sizeof(code));
code[1][0]=readchar();
for(int len=2;len<=7;len++){
for(int i=0;i