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

如何统计给定区间内各位数字之和能被3整除的数字数量

统计指定区间内各位数字之和可被3整除的数字总数

示例说明:若给定区间为139到141,区间内包含的数字为139、140和141,三者的各位数字之和分别为13、5、6,其中仅141的各位数字之和能被3整除,符合统计要求,最终统计结果为1。


实现方案

方案1:暴力遍历法(适用小范围区间)

思路:遍历区间内所有整数,逐个计算各位数字之和,判断是否满足整除要求后计数。
参考Python实现:

def count_divisible_by_3(start: int, end: int) -> int:
    count = 0
    for num in range(start, end + 1):
        digit_sum = sum(int(d) for d in str(num))
        if digit_sum % 3 == 0:
            count += 1
    return count

# 测试示例
print(count_divisible_by_3(139, 141)) # 输出 1

方案2:O(1)高效计算法(适用任意大小区间)

  • 核心数学依据:任意整数模3的结果,与该整数所有位数字之和模3的结果完全相等。因此「各位数字之和可被3整除」等价于「数字本身可被3整除」,无需单独计算各位和。
  • 计算公式:区间[start, end]内符合要求的数字总数 = end // 3 - (start - 1) // 3
    参考Python实现:
def count_divisible_by_3_fast(start: int, end: int) -> int:
    return end // 3 - (start - 1) // 3

# 测试示例
print(count_divisible_by_3_fast(139, 141)) # 输出 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:18:03