python算法

  

面试题: 一百个灯泡排成一排,第一轮将所有灯泡打开;第二轮每隔一个灯泡关掉一个..

面试题(摘自infoq):一百个灯泡排成一排,第一轮将所有灯泡打开;第二轮每隔一个灯泡关掉一个。即排在偶数的灯泡被关掉,第三轮每隔两个灯泡,将开着的灯泡关掉,关掉的灯泡打开。依次类推,第n轮结束的时候,还有几盏灯泡亮着。使用一段代码实现:

复制代码

 1# -*- coding: utf-8  -*- 2#!/usr/local/bin/python 3from datetime import datetime 4 5 6if__name__ == '__main__': 7print datetime.now() 8 9     n = 10010     data = [1] * n11print data, sum(data)12for _i in range(1, n):13for _j in range(len(data)):14if _j in range(_i, n, _i+1):15                 data[_j] ^= 116print data, sum(data)1718print datetime.now()

复制代码


你可能感兴趣的:(python,local,import,灯泡)