Skip to content

Commit e69e249

Browse files
两个练习
1 parent fce1800 commit e69e249

3 files changed

Lines changed: 94 additions & 64 deletions

File tree

.idea/workspace.xml

Lines changed: 51 additions & 64 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Target Offer/带锁的门.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
'''
2+
走廊上有n个带锁的门,从1到n依次编号。最初所有的门都是关着的。我们从门前经过n次,每次都是从1号门开始。
3+
在第i次经过的时候改变第i个整数倍号所的状态。
4+
在最后一次经过的后, 哪些门是打开的, 输出打开门的序号
5+
'''
6+
7+
def openDoor(n):
8+
if n == None or n <= 0:
9+
return
10+
doorList = [0] * (n+1)
11+
for i in range(1, len(doorList)):
12+
j = i
13+
while j <= n:
14+
doorList[j] = 1 - doorList[j]
15+
j += i
16+
output = [i for i, x in enumerate(doorList) if x != 0]
17+
return output
18+
19+
print(openDoor(16))
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
'''
2+
输入一个整数, 输出不大于这个整数的所有连续的质数序列
3+
认为1不是质数
4+
'''
5+
6+
def Sieve(n):
7+
if n == None or n <= 1:
8+
return
9+
temp = [0]*(n+1)
10+
for p in range(2, len(temp)):
11+
temp[p] = p
12+
for p in range(2, int(n**0.5)+1):
13+
if temp[p] != 0:
14+
j = p * p
15+
while j <= n:
16+
temp[j] = 0
17+
j += p
18+
output = []
19+
for i in temp:
20+
if i != 0:
21+
output.append(i)
22+
return output
23+
24+
print(Sieve(29))

0 commit comments

Comments
 (0)