You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算一个数包含另一个数的次数?求中文清晰解答

计算一个数包含另一个数的次数:两种常见场景详解

嘿,别发愁!我懂之前看其他语言内容那种懵懵的感觉,现在用最直白的方式给你拆解这个问题——其实核心分两种常见场景,咱们一个个说清楚:

场景1:求大数里能完整容纳多少个小数(数值层面的包含)

这种情况就是咱们常说的「倍数统计」,比如问「10里有几个3」,本质是算10最多能被3整除几次,结果是3次(因为3×3=9≤10,剩下的1不够再装一个3)。

用整数除法就能直接解决,注意除数不能为0哦。举个Python的例子:

def count_as_multiple(dividend, divisor):
    if divisor == 0:
        raise ValueError("除数不能是0,会报错哒!")
    # 整除运算自动舍去余数,得到完整容纳的次数
    return dividend // divisor

# 测试一下
print(count_as_multiple(10, 3))  # 输出 3
print(count_as_multiple(100, 25)) # 输出 4
print(count_as_multiple(7, 2))   # 输出 3

场景2:数字的字符序列里包含目标数字的次数(字符串匹配)

如果是问「123123里有几个123」,或者「111里有几个11」,这时候要把数字当成字符串来处理——因为咱们要找的是连续的数字序列,甚至得考虑重叠的情况(比如111里的11,其实有2次:前两位和后两位)。

直接用字符串的count()方法只能处理非重叠的情况,所以更稳妥的是自己写个遍历逻辑:

def count_as_sequence(number, target):
    num_str = str(number)
    target_str = str(target)
    target_length = len(target_str)
    count = 0
    
    # 遍历每个可能的起始位置,检查是否匹配目标序列
    for i in range(len(num_str) - target_length + 1):
        if num_str[i:i+target_length] == target_str:
            count += 1
    return count

# 测试示例
print(count_as_sequence(123123, 123)) # 输出 2
print(count_as_sequence(111, 11))     # 输出 2
print(count_as_sequence(5678, 9))     # 输出 0

怎么选场景?

  • 如果你想算的是「一个数是另一个数的几倍(取整)」,用场景1的整数除法;
  • 如果你想找的是「数字里连续出现目标数字的次数」,用场景2的字符串遍历法。

内容的提问来源于stack exchange,提问作者d2wn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 21:32:34