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()

複製代碼


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章