走廊的一侧有 n 扇关闭的门,编号依次为 1 ~ n。指定若干个门的编号,依次对指定编号的门进行相反操作(如果门是打开的,就把门关闭;如果门是关闭的,就把门打开)。请问最终有几扇门是关闭的?
输入:
共 2 行,第 1 行是一个正整数 n
第 2 行是若干个以空格分开的正整数,表示门的编号。
输出:
一个整数
输入样例:
10
5 4 3 2 1 5 7 8 10 2
输出样例:
4
b=int(input())
a=[int (i) for i in input().split()]
c=len(a)
d=[0 for i in range(b+1)]
for i in a:
d[i]+=1
p=0
for x in range(1,len(d)):
if d[i]%2==0:
p+=1
print(p)
望采纳
不知道你这个问题是否已经解决, 如果还没有解决的话:问题回答:
由于题目中需要对指定的门进行开关,因此需要使用列表进行操作。具体步骤如下:
1.首先输入共2行,第1行是一个正整数n;第2行是若干个以空格分开的正整数,需要使用input()函数获取用户的输入。
2.将第2行的字符串转换为列表,使用list()函数或者split()函数即可。
3.定义一个长度为n的列表doors,初始化为0,表示所有门都是关闭的状态。
4.对于第2行中的每一个门编号,将doors列表中对应位置的元素进行改变,如果是0就变为1,如果是1就变为0。
5.记录所有关闭的门的数量,使用一个变量close_num,初始值为0。遍历doors列表,如果列表中的元素是0,close_num的值就加1。
6.输出所有关闭的门的数量,使用print()函数输出即可。
下面是具体实现的代码:
n = int(input()) # 输入一个正整数n door_nums = list(map(int, input().split())) # 输入门的编号列表 doors = [0] * n # 初始化一个长度为n的列表,表示所有门都是关闭的 for num in door_nums: doors[num-1] = 1 - doors[num-1] # 如果门是关闭的,就变为打开;如果门是打开的,就变为关闭
close_num = doors.count(0) # 记录关闭的门的数量 print(close_num) # 输出所有关闭的门的数量
参考资料:
无