“判断题的猜题方法”

在C语言的课堂上,刘老师想考考最近大家学得怎么样。班上的小王同学是个小机灵,根据他以往抄作业的经验,他觉得老师应该会出奇数个正确的判断(True),所以他想到了前段时间自学的奇偶校验码。
他这次打算靠猜来完成总共有n+1个题目的判断题,于是小王决定使用奇校验码来猜出判断题
第n+1题,即保证所有判断题中出现奇数个1(即奇数个True)。

奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错码。
它是由n-1位信息元和1位校验元组成。
如果是奇校验码,在附加上一个校验元以后,码长为n的码字中“1”的个数为奇数个;
如果是偶校验码,在附加上一个校验元以后,码长为n的码字中“1”的个数为偶数个。

输入格式:
本题采取多组输入,在输入的第一行会输入一个T表示本题一共有T组数据
在每组数据中,第一行会给出一个n表示一共有n题。
注意本题的 1 ≤ n ≤ 1 0 5 1 \le n \le 10^{5} 1n105

接下来会给出一行长度为n的01串表示小w已经猜了的n题结果。
0表示小w猜该题为错(False),1表示小w猜该题为对(True)。

输出格式:

在每一组数据中你应该输出0或1表示最后一题应该填对或错

输入样例:

2
5
10110
8
10111000

输出样例:

0
1
代码长度限制 16 KB
时间限制 1000 ms
内存限制 64 MB

代码参考:

#include·<stdio.h>
const·int·maxn·=·1e5·+·10;

int·main()
{
    
    
····char·str[maxn];
····int·t;
····scanf("%d",·&t);
····while·(t--)·{
    
    
········int·n;
········scanf("%d%s",·&n,·str);
········int·cnt·=·0;
········for·(int·i·=·0;·i·<·n;·++i)·{
    
    
············cnt·+=·str[i]·==·'1';
········}
········printf("%d\n",·!(cnt·&·1));
····}

····return·0;
}

猜你喜欢

转载自blog.csdn.net/qq_46373141/article/details/131271170
今日推荐