“判断题的猜题方法”
班上的小王同学是个小机灵,根据他以往抄作业的经验,他觉得老师应该会出奇数个正确的判断(True),所以他想到了前段时间自学的奇偶校验码。0表示小w猜该题为错(False),1表示小w猜该题为对(True)。本题采取多组输入,在输入的第一行会输入一个T表示本题一共有T组数据。第n+1题,即保证所有判断题中出现奇数个1(即奇数个True)。接下来会给出一行长度为n的01串表示小w已经猜了的n题结果。在
在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}
1≤n≤105
接下来会给出一行长度为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;
}
更多推荐
所有评论(0)