题解 | #挑7#
挑7
https://www.nowcoder.com/practice/ba241b85371c409ea01ac0aa1a8d957b
看到很多人都是用字符串的解法,我这里提供一种算法与数据结构书里面教的简单方法,就是分解位数,比如数字123,首先将数字%10获得尾数3,然后将其除10得到12,接下来%10得到2,除10得到1,%10得到1,除10得到0。设置while循环,不为0时继续循环,为0时跳出循环即可
n = int(input()) count = 0 for i in range(1, n+1): if i % 7 == 0: count += 1 else: # 分解位数判断 temp = i while temp: if temp % 10 == 7: count += 1 break temp //= 10 print(count)