UVa 213 Message Decoding
2016-05-24 15:14
106 查看
#include <stdio.h> #include <string.h> int readchar()//如没有遇到'\r'或'\n'时,返回ch { for(;;) { int ch = getchar(); if(ch != '\n' && ch != '\r') return ch; } } int readint(int c) { int v = 0; while(c--) v = v * 2 + readchar() - '0'; return v; } int code[8][1<<8]; int readcodes() { memset(code, 0, sizeof(code));//初始化code数组 code[1][0] = readchar(); for(int len = 2; len <= 7; len++) { for(int i = 0; i <= 7; i++) { int ch = getchar(); if(ch == EOF) return 0; if(ch == '\n' || ch == '\r') return 1; code[len][i] = ch; } } return 1; } void printcodes() { for(int len = 1; len <= 7; len++) for(int i = 0; i < (1<<len)-1; i++) { if(code[len][i] == 0) return; printf("code[%d][%d] = %c\n", len, i, code[len][i]); } } int main() { while(readcodes()) { for(;;) { int len = readint(3); if(len == 0) break; for(;;) { int v = readint(len); if(v == (1 << len)-1) break; putchar(code[len][v]); } } putchar('\n'); } return 0; }
相关文章推荐
- 1.10055 - Hashmat the brave warrior
- 2.10071 - Back to High School Physics
- 3.458 - The Decoder
- 4.694 - The Collatz Sequence
- 6.494 - Kindergarten Counting Game
- 7.490 - Rotating Sentences
- 8.414 - Machined Surfaces
- 9.488 - Triangle Wave
- A.457 - Linear Cellular Automata
- B.489 - Hangman Judge
- C.445 - Marvelous Mazes
- 1.10494 - If We Were a Child Again
- 2.424 - Integer Inquiry
- 3.10250 - The Other Two Trees
- 5.465 - Overflow
- 6.113 - Power of Cryptography
- 7.10161 - Ant on a Chessboard
- 8.621 - Secret Research
- 9.401 - Palindromes
- A.537 - Artificial Intelligence?