蛇形填数
数据:
1 2 6 7 15 ...
3 5 8 14 ...
4 9 13 ...
10 12 ...
11 ...
...
规律及代码:
第1行 1
第2行 5 1+ 4*1
第3行 13 5+ 4*2
第4行 25 13+ 4*3
# 代码
res=1
for i in range(1,20):
res += 4*i
print(res)
棋盘放麦子
2012 填空题 省赛
import os
import sys
# 请在此输入您的代码
print(2**64-1)
既约分数
2021 省赛 填空 直接暴力
import os
import sys
import math
# 请在此输入您的代码
c=0
for i in range(1,2021):
for j in range(1,2021):
# math.gcd(i,j) 求i,j的最大公约数,如果是1,说明是
if math.gcd(i,j)==1:
c+=1
print(c)
注: 最小公倍数
def lcm(x, y):
"""
:return: 最小公倍数
"""
# 获取最大的数
if x > y:
greater = x
else:
greater = y
while (True):
if ((greater % x == 0) and (greater % y == 0)):
lcm = greater
break
greater += 1
return lcm
最大公约数
def hcf(x, y):
"""
:return: 该函数返回两个数的最大公约数
"""
# 获取最小值
if x > y:
smaller = y
else:
smaller = x
for i in range(1, smaller + 1):
if ((x % i == 0) and (y % i == 0)):
num = i
return num
跑步锻炼
填空 2020 省赛 代码:
import os
import sys
# 请在此输入您的代码
import datetime
start = datetime.date(2000, 1, 1)
end = datetime.date(2020, 10, 1)
days = datetime.timedelta(days=1)
ans = 0
while end >= start:
# 月初 或 星期一
if start.day == 1 or start.weekday() == 0:
ans += 2
else:
ans += 1
start += days
print(ans)
空间
2021 省赛 普通填空 分析及代码:
# 256MB = 256 * 1024 *1024 (B)
# 32bit = 32//8 (B)
这里区分一下
# 32位二进制可表示的数 2**32
32位二进制所占的存储空间 32//8
total = 256*1024*1024
a = 32//8
print(total//a)
数列求值
2019 填空 省赛 代码: 注意 这道题不能用递归,时间太长,栈内存不够
a, b, c, d = 1, 1, 1, 0
for i in range(4, 20190325):
# 因为要最后4位数字 我们只需要低位数字的变化
# 高位数字可以丢掉,减少运行时间
d = (a + b + c) % 10000
a, b, c = b, c, d
print(a, b, c, d)
|