s = input().split() L, R = int(s[0]), int(s[1]) total = 0 for i in range(L,R+1): while i !=0: if str(i).count('9')==1: total += 1 else: total+=str(i).count('9') break print(total)
时间: 2024-02-14 11:21:50 浏览: 94
测试数据如下 1)文件一:data01.txt,内容:Beijing is beautiful I love Beijing
这段代码的实现方式是逐个枚举[L,R]范围内的每个整数,然后对于每个整数,统计它的数字9出现的次数,最后把所有整数的数字9出现次数加起来。具体来说,代码中用到了 `str` 的 `count` 方法来统计数字9出现的次数。
这种实现方式的时间复杂度是 O((R-L)*log R),因为需要枚举[L,R]范围内的每个整数,并且对于每个整数需要用log R的时间计算其数字9出现的次数。
相比之下,我之前给出的实现方式的时间复杂度是 O(log R),因为它是直接根据[L,R]范围内的数位计算数字9出现的次数,不需要逐个枚举每个整数。
因此,如果[L,R]范围较大,建议使用我之前给出的实现方式,时间复杂度更低。如果[L,R]范围较小,那么这段代码也可以接受。
阅读全文