百度的面試題(摘自infoq):一百個燈泡排成一排,第一輪將所有燈泡打開;第二輪每隔一個燈泡關掉一個。即排在偶數的燈泡被關掉,第三輪每隔兩個燈泡,將開着的燈泡關掉,關掉的燈泡打開。依次類推,第n輪結束的時候,還有幾盞燈泡亮着。
使用一段代碼實現:
1 # -*- coding: utf-8 -*- 2 #!/usr/local/bin/python 3 from datetime import datetime 4 5 6 if __name__ == '__main__': 7 print datetime.now() 8 9 n = 100 10 data = [1] * n 11 print data, sum(data) 12 for _i in range(1, n): 13 for _j in range(len(data)): 14 if _j in range(_i, n, _i+1): 15 data[_j] ^= 1 16 print data, sum(data) 17 18 print datetime.now()