码迷,mamicode.com
首页 > 其他好文 > 详细

UVA213 UVALive5152 Message Decoding

时间:2016-08-12 07:57:04      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

World Finals >> 1991 - San Antonio

问题链接:UVA213 UVALive5152 Message Decoding

问题简述:参见问题链接。

问题分析:(略)。

程序中,若干功能封装到函数中,使得程序逻辑变得简洁。

AC的C语言程序如下:

/* UVA213 UVALive5152 Message Decoding */

#include <stdio.h>
#include <memory.h>

#define CODE_LEN 7

int code[CODE_LEN+1][1<<(CODE_LEN+1)];

int readchar()
{
    int c;

    while((c=getchar()) && (c == '\n' || c == '\r'));

    return c;
}

int readcodes()
{
    int i, j;
    char c;

    memset(code, 0, sizeof(code));

    code[1][0] = readchar();

    for(i=2; i<=CODE_LEN; i++) {
        int len = (1<<i)-1;
        for(j=0; j<len; j++) {
            if((c = getchar()) == EOF)
                return 0;
            else if(c == '\n' || c == '\r')
                return 1;
            code[i][j] = c;
        }
    }

    return 1;
}

int readint(int len)
{
    int v = 0;

    while(len--)
        v = v * 2 + readchar() - '0';

    return v;
}

int main(void)
{
    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;
}


UVA213 UVALive5152 Message Decoding

标签:

原文地址:http://blog.csdn.net/tigerisland45/article/details/52187599

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!