ZOJ-2729

来源:互联网 发布:怎样做淘宝客服 编辑:程序博客网 时间:2024/05/01 22:56
#include<stdio.h>void to16bit(int n, char s[]){    int i = 16;    while (--i >= 0)    {        s[i] = n % 2 + '0';        n /= 2;    }}int calc7bit(char s[], int index){    int factor = 1, r = 0, i;    for (i = index + 6; i > index; i--)    {        r += (s[i] - '0') * factor;        factor *= 2;    }    return s[index] == '0' ? r : -r;}int main(){    int n;    while (scanf("%d", &n), n != -1)    {        int num, i, j = 0, total = 16 * n, sum = 0;        char s[16], r[total];        while (n--)        {            scanf("%d", &num);            to16bit(num, s);            for (i = 0; i < 16; i++)                r[j++] = s[i];        }        for (i = 0; i < total; i += 7)            sum += calc7bit(r, i);        printf("%d\n", sum);    }    return 0;}

0 0
原创粉丝点击