题解 | #挑7# 原来分段保存一下结果就行,笑死了
挑7
https://www.nowcoder.com/practice/ba241b85371c409ea01ac0aa1a8d957b
n = int(input())
arr = [1125, 1125, 1750, 1126, 1125, 1751, 1126, 1125, 1126, 1749]
spt = 3000
# for i in range(10):
# ans = 0
# for j in range(3000):
# x = i * 3000 + j + 1
# if str(x).find('7') >= 0 or x % 7 == 0:
# ans += 1
# print(i, ans)
s = n // spt
ans = 0
for i in range(s):
ans += arr[i]
for i in range(s * spt + 1, n + 1):
if i == 0: continue
if str(i).find('7') >= 0 or i % 7 == 0:
ans += 1
print(ans)
查看25道真题和解析