📜  计算不包含3的数字(1)

📅  最后修改于: 2023-12-03 15:41:37.116000             🧑  作者: Mango

不包含3的数字计算器

这是一个可以计算不包含数字3的数字范围的计算器。通过输入数字n,可以计算从1到n中有多少个数字不包含数字3。该计算器适用于所有编程语言和技能水平的程序员。

使用方法
函数签名
def count_numbers_without_3(n: int) -> int:
示例
count_numbers_without_3(20)  # 返回 16 (1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18)
实现思路

该计算器的实现思路为,遍历1到n的每个数字,判断数字是否包含数字3,如不包含则计数器加一。判断数字是否包含数字3的方法为,将数字转化成字符串,然后检测字符串中是否包含字符'3'。

代码实现
def count_numbers_without_3(n: int) -> int:
    count = 0
    for i in range(1, n+1):
        if '3' not in str(i):
            count += 1
    return count
性能分析

该计算器的时间复杂度为O(nlogn),空间复杂度为O(1)。在输入较大时可能存在一定的性能问题,但对于绝大部分应用场景来说,该计算器的性能已经足够满足需求。如果需要进一步提升性能,可以采用位运算等优化方式。

结论

该计算器可以方便地计算不包含数字3的数字范围,适用于各种编程语言和技能水平的程序员。如果您在开发过程中遇到了不包含数字3的需求,那么这个计算器一定会为您提供帮助。