2009年4月12日 星期日

強哥交代作業

1.1000位學生與1000扇關著的門,皆從1編號至1000。今1號學生將所有的門打開,接著2號學生把編號2的倍數的門再關起來,3號學生再把編號3的倍數的門作相反的動作(開著的關上、關著的打開),依此類推,直到1000號學生做完。請問最後哪幾號門是打開的? 寫程式求解。



student=[]
for i in xrange(1001):
student.append(1)
for j in xrange(1,1001):
for k in xrange(0,1001,j):
student[k]=student[k]*-1
for a in xrange(1,1001):
if student[a] == -1:
print '第',a,'門開啟'

待續.....

1 則留言:

  1. 建議排個版要有縮排

    不然一個禮拜後你絕對看不懂自己寫的程式碼

    回覆刪除