“判断题的猜题方法”

小王在C语言课上利用奇偶校验码的原理猜测判断题答案。他已做出n个判断,希望通过奇校验码确保最后的答案使正确题目数量为奇数。程序接收多组数据,每组包含n个已猜答案,输出最后一题应选True或False以达成奇数个正确答案的目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qing影

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值