Python刷题营
第3周 循环结构
11 方桌
参考答案
n=int(input())
s=0 # 累加器
for i in range(1,n+1): # 第1~n张桌子
m=2+2*i # 计算椅子数
s+=m # 累加椅子数
print(s)
学员优秀解法
wuyun
total=n*n+3*n
print(total)
mingyuan
a=int(input())
b=0
for i in range(1,a+1):
b+=(i+1)*2
print(b)
zimo
a=0
b=1
for i in range(n):
c=(1+b)*2
a=a+c
b=b+1
print(a)
12 树的生长
m=1 # 第1层结点数
s=1 # 累加器,初值为第1层结点数
for i in range(2,n+1): # 第2~n层
m*=2 # 计算第i层结点数(上层结点数*2)
s+=m
jerry
print(2**n-1)
shaocong
s=1
s+=s
print(s-1)
gavin
s=0
for i in range(1,n+1):
s+=2*i+2
13 寻找次品
s=0 # 累加器,称重次数
while n>1:
n//=2 # 平均分成两份(奇偶数都适用,奇数相当于去掉1个再均分)
s+=1 # 称重次数+1
leo
n = int(input())
count = 0
while n > 1:
count += 1
n = n // 2
print(count)
yuanshuo
if n%2!=0:
n-=1
while True:
if n==1:
break
n//=2
s+=1
vivian
if n%2==0:
n=n//2
else:
14 学识币
s=0 # 累加器,连续学习天数
while n>=3: # 如果登录后还能学习
n+=2
n-=5
patrick
print(a//3)
while a>=3:
a-=3
b+=1
day = 0
n += 2
if n >= 5:
n -= 5
day += 1
print(day)
15 棋盘格
for i in range(n): # 第i行(行号从0开始)
ls=[] # 存放每行数字的列表
for j in range(n): # 第j列(列号从0开始)
if (i+j)%2==0: # 如果行号+列号是偶数(如第0行第0列)
ls.append('1')
ls.append('0')
print(' '.join(ls)) # 输出第i行的数字
for i in range(0,a):
for j in range(1,a+1):
if j!=a:
print((i+j)%2,end=" ")
if j==a:
print((i+j)%2)
for j in range(n):
if (j+i)%2==0:
if (n-1)==j:
print("1")
print("1 ",end="")
print("0")
print("0 ",end="")
一起解锁
趣味编程挑战