面試題: 一百個燈泡排成一排,第一輪將所有燈泡打開;第二輪每隔一個燈泡關掉一個..
面試題(摘自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()