'''
开灯问题:
有从1到n依次编号的n名同学和n盏灯。1号同学将所有的灯都关掉;2号同学将编号为2的倍数的灯都打开;3号同学则将编号为3的倍数的灯做相反的处理(该号灯如打开,则关掉;如关闭,则打开);以后的同学都将自己的编号倍数的灯,做相反处理,问经n个同学操作后,那些灯是打开的
问题分析:
1、前面已经学过用数组表示过个对象的某种状态,这里就定义有n个元素的a数组,他的每个下标变量a[i]视为一盏灯,i表示编号。a[i]=1表示第i盏灯处于打开状态,a[i]=0表示第i盏灯处于关于状态。
2、那么如何实现将第i盏灯做相反处理的开关等操作呢,用if语句:当a[i]为1时,a[i]被重新复赋值为0;当a[i]为0时,a[i]被重新复赋值为1;,这里介绍,通过算术运算a[i]=1-a[i],就很好的模拟开关灯的操作,把这种形式的语句称为“乒乓开关”。
'''
def main():
a = [
开关灯问题(python)实现
最新推荐文章于 2024-04-22 21:16:16 发布