【python练习题】开关电灯
来源:互联网 发布:菲茨杰拉德知乎 编辑:程序博客网 时间:2024/04/29 19:02
有N个灯放在一起,从1到N依次顺序编号,有N个人也从1到N依次编号。1号将灯全部熄灭,2号将,凡是2的倍数的灯打开;3号将凡是3的倍数的灯作相反处理(该灯如为打开,则将他关闭;如果关闭,则将它打开)。以后的人都和3号一样,将凡是自己编号倍数的灯作相反处理。
编程实现:第N个人操作后,按顺序输出等的状态(1表示灯打开,0表示灯熄灭)。
输入
输入:N(1<= N <= 2000000),灯的个数
输出
输出:灯的状态,用01序列表示,中间无空格。
输入示例:
2
输出示例:
01
代码实现:
__author__ = 'c08762'# -*- coding:utf-8 -*-def is_valid(numb): """输入合法性检查,必须输入正数,不支持科学计数法""" try: int(numb) except: return False else: if int(numb) < 1 or int(numb) > 2000000: return False else: return True# 接收一个数,并进行合法性检查,范围检查非必须,n可为任意正整数num_t = input("Pls enter a number between 1 and 2000000:\n")while not is_valid(num_t): num_t = input("That's not a valid number. Try again:\n")num = int(num_t)# 使用正负号表示灯的状态lights = list(range(1, num+1))for i in range(1, num+1): for j in range(i-1, num, i): lights[j] = - lights[j]# 按题意转化为0,1表示状态for k in range(len(lights)): if lights[k] > 0: print(1, end='') else: print(0, end='')# 灯的状态存储在列表中# print(lights)# for k in range(len(lights)):# if lights[k] > 0:# lights[k] = 1# else:# lights[k] = 0# print(lights)# for i in lights:# print(i, end='')# print('\nThere are(is) %d light(s) off.' % lights.count(0))
效果:
Pls enter a number between 1 and 2000000:
10
0110111101
效果2:
Pls enter a number between 1 and 2000000:
10
[-1, 2, 3, -4, 5, 6, 7, 8, -9, 10]
[0, 1, 1, 0, 1, 1, 1, 1, 0, 1]
0110111101
There are(is) 3 light(s) off.
0 0
- 【python练习题】开关电灯
- 电灯开关与文化水平
- poj 3178: 开关电灯
- state模式与组合电灯开关
- 23-ToggleButton,像电灯开关的按钮
- 开关电灯(济南联通面试题)
- 电玩设计无孔不入:摇杆造型、可发声的电灯开关
- unity3d的playmaker插件使用教程,一、电灯开关
- [置顶] 桥接模式——开关和电灯照明
- Python 练习题
- python 练习题
- python 练习题
- python练习题
- Python练习题
- Python练习题
- Python练习题
- python练习题
- Python练习题
- 正则表达式基本语法
- python基本数据类型
- Oracle学习笔记1
- git命令
- 如何下载高清卫星地图/历史影像(任意大小、自动拼接、高清晰)
- 【python练习题】开关电灯
- PyCharm与GitHub配置使用总结
- React Native 的State 的两种写法
- Unity EditorWindow Rename
- MySQL中的isnull、ifnull和nullif函数用法
- android studio SHA1获取
- ps命令
- You've implemented -[<UIApplicationDelegate> application:didReceiveRemoteNotification:fetchCompletio
- 漫谈设计模式之建造者模式(Builder)