“判断题的猜题方法”

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

在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;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 编写一个程序,可以让用户输入一个数字,并输出其平方值。 ```python num = int(input("请输入一个数字:")) squared = num ** 2 print("该数字的平方值为:", squared) ``` 2. 编写一个程序,可以让用户输入一个数字,并输出其平方根值。 ```python import math num = float(input("请输入一个数字:")) sqrt_num = math.sqrt(num) print("该数字的平方根值为:", sqrt_num) ``` 3. 编写一个程序,可以让用户输入一个数字,判断该数字是否为奇数。 ```python num = int(input("请输入一个数字:")) if num % 2 == 1: print("该数字是奇数") else: print("该数字是偶数") ``` 4. 编写一个程序,可以生成一个1-100之间的随机整数,并让用户猜测该数字,直到猜为止。 ```python import random random_num = random.randint(1, 100) guess_num = 0 while guess_num != random_num: guess_num = int(input("请猜一个1-100之间的整数:")) if guess_num < random_num: print("猜小了,请重新猜") elif guess_num > random_num: print("猜大了,请重新猜") print("恭喜你猜了!") ``` 5. 编写一个程序,可以让用户输入一个字符串,判断该字符串是否为回文字符串。 ```python string = input("请输入一个字符串:") if string == string[::-1]: print("该字符串是回文字符串") else: print("该字符串不是回文字符串") ``` 6. 编写一个程序,可以生成一个包含10个随机整数的列表,并输出其的最大值和最小值。 ```python import random num_list = [random.randint(1, 100) for i in range(10)] print("生成的随机整数列表为:", num_list) print("其最大值为:", max(num_list)) print("其最小值为:", min(num_list)) ``` 7. 编写一个程序,可以生成一个包含10个随机整数的列表,并将其的偶数和奇数分别存储到两个不同的列表。 ```python import random num_list = [random.randint(1, 100) for i in range(10)] odd_list = [] even_list = [] for num in num_list: if num % 2 == 0: even_list.append(num) else: odd_list.append(num) print("生成的随机整数列表为:", num_list) print("其偶数列表为:", even_list) print("其奇数列表为:", odd_list) ``` 8. 编写一个程序,可以让用户输入一个字符串,并输出其每个字符出现的次数。 ```python string = input("请输入一个字符串:") char_dict = {} for char in string: if char in char_dict: char_dict[char] += 1 else: char_dict[char] = 1 print("该字符串每个字符出现的次数为:", char_dict) ``` 9. 编写一个程序,可以生成一个包含10个随机整数的列表,并将其的重复元素去除。 ```python import random num_list = [random.randint(1, 10) for i in range(10)] new_list = list(set(num_list)) print("生成的随机整数列表为:", num_list) print("去重后的列表为:", new_list) ``` 10. 编写一个程序,可以生成一个包含10个随机整数的列表,并将其的元素按照从小到大的顺序排序。 ```python import random num_list = [random.randint(1, 100) for i in range(10)] sorted_list = sorted(num_list) print("生成的随机整数列表为:", num_list) print("排序后的列表为:", sorted_list) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qing影

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

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

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

打赏作者

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

抵扣说明:

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

余额充值