标签:http enum code pytho range += 不能 res python
Q: 求 [L, R] 的合法数字个数,合法数字是不能包含9也不能被9整除。L和R一定合法。
A:
res = count(R)-count(L)+1 # 因为L肯定是合法数字
count函数:(没有很看懂)
def count(N):
res = 0
L = len(str(N)
for i,v in enumerate(str(N):
if i < L - 1:
# int(v)是该位值,后面每位都有0-8共9个数字进行选择,除了最后一位。最后一位9个数字是连续的,必有一个数字可以被9整除,是不合法的。
res += int(v) * (9 ** (L - 2 - i)) * 8
else:
for i in range(N - N % 10, N + 1): # 最后一位
if i % 9 > 0:
res += 1
# 或者上面三行等同于下面一行
# res += N % 10 + (N % 9 > N % 10)
return res
代码可参考:Code Jam Kickstart Round B 2018 题解
标签:http enum code pytho range += 不能 res python
原文地址:https://www.cnblogs.com/xym4869/p/13235998.html