输入案例,输出没问题,为什么不过呢
查看原帖
输入案例,输出没问题,为什么不过呢
1504138
wangxinniankuaile楼主2024/11/13 20:55
numbers = int(input()) #输入灯数number同时有多少个灯代表需要操作多少次
list_number = [] 
for i in range(numbers): #开始状态,将每个灯开启 设开启状态为1,关闭状态为0
    list_number.append(1)

if numbers == 1: #有1盏灯的情况
    list_number = [0]
elif numbers == 2: #有2盏灯的情况
    list_number = [0,1]
elif numbers == 3: #有3盏灯的情况
    list_number = [0,1,0]
elif numbers >= 4: #有4盏灯及其以上的情况,操作number次 
    for i in range(numbers):
        if i+1 == 1:    # 第一次操作将所有灯关闭
            for j in range(numbers):
                list_number[j] = 0
            #print(list_number)
        if (i+1) % 2 == 0:  # 第二次操作将所有2的倍数的打开
            list_number[i] = 1
        if i+1 >= 3: # 第三次以上的操作将所有是i倍数序号的灯取相反
            for k in range(3,numbers+1): 
                if (i+1) % k == 0:
                    if list_number[i] == 0:
                        list_number[i] = 1
                    else:
                        list_number[i] = 0
#print(list_number)
for idex, item in enumerate(list_number):  
    if item == 0:
        print(idex+1,end=" ")   # 列表索引值从0开始,而灯是从1开始,所以灯的序号为索引值加1

2024/11/13 20:55
加载中...