A:求和

暴力
count=0
for i in range(1,2020):
if (“2” in str(i)) or (“0” in str(i))or (“1” in str(i))or (“9” in str(i)):
print(i)
count+=i
print(count)
B:矩形切割

暴力:用个while循环,找min(width,length),直到有一个为1
long = 2019
width = 324
count=0
while long!=1 and width !=1:
if long>width:
long = long - width
count+=1
elif long==width:
long,width=0,0
count+=1
break
else:
width = width -long
count+=1
count+=(long or width)#剩下的1X(width or long)块切为1X1,1X1...
print(count)

不同子串

这题好像在B组见了哈,直接暴力,用切片
s=“0100110001010001”
se=set()
for i in range(len(s)):
for j in range(i+1,len(s)+1):
se.add(s[i:j])
print(len(se))
D:质数

求质数.暴力
count=1
flag = False
for i in range(3,10000000):
for j in range(2,i):
if i%j==0:
flag = True
break
if flag == True:
flag=False
continue
else:
print(i)
count+=1
if count == 2019:
print(i)
break

E:最大降雨量

感觉好像数学题
思路:7个数最小值为1+2+。。+7,中位数为4,最大值为43+。。+49=51
每个星期的中位数都在4-51来回变化。盲猜每个星期中位数差不多的时候为最大值,应该是3小+4大这样的组合
F:旋转(15分)


本文解析了第十届编程竞赛中的十个题目,包括求和、矩形切割、质数寻找、最大降雨量计算等,提供了详细的解题思路及代码实现。



最低0.47元/天 解锁文章
1649

被折叠的 条评论
为什么被折叠?



