当前位置: 首页 > article >正文

15-4连续子串和的整除问题

问题描述

小M是一个五年级的小学生,今天他学习了整除的知识,想通过一些练习来巩固自己的理解。他写下了一个长度为 n 的正整数序列 a_0, a_1, ..., a_{n-1},然后想知道有多少个连续子序列的和能够被一个给定的正整数 b 整除。你能帮小M解决这个问题吗?


测试样例

样例1:

输入:n = 3,b = 3,sequence = [1, 2, 3]
输出:3

样例2:

输入:n = 4,b = 5,sequence = [5, 10, 15, 20]
输出:10

样例3:

输入:n = 5,b = 2,sequence = [1, 2, 3, 4, 5]
输出:6

def solution(n, b, sequence):
    count = 0  # 用于记录符合条件的子序列数量
    
    # 外层循环,确定子序列的起始位置
    for start in range(n):
        current_sum = 0  # 当前子序列的和
        
        # 内层循环,确定子序列的结束位置
        for end in range(start, n):
            current_sum += sequence[end]  # 更新当前子序列的和
            
            # 检查当前和是否能被 b 整除
            if current_sum % b == 0:
                count += 1  # 如果可以整除,则计数加一
                
    return count  # 返回符合条件的子序列数量

if __name__ == "__main__":
    # 测试样例
    sequence1 = [1, 2, 3]
    print(solution(3, 3, sequence1) == 3)  # 输出: True

    sequence2 = [5, 10, 15, 20]
    print(solution(4, 5, sequence2) == 10)  # 输出: True

    sequence3 = [1, 2, 3, 4, 5]
    print(solution(5, 2, sequence3) == 6)  # 输出: True

    # 其他测试用例
    sequence4 = [1, 1, 1, 1]
    print(solution(4, 2, sequence4) == 10)  # 输出: True (所有子序列的和都是 1 或 2 的倍数)


http://www.kler.cn/news/368367.html

相关文章:

  • (7) cuda异常处理
  • Docker下载途径
  • 网络搜索引擎Shodan(4)
  • blender 小车建模 建模 学习笔记
  • springboot入门学习笔记
  • 回调函数的应用实践 (1)
  • Android Studio历史版本下载
  • 开源模型应用落地-Qwen2-VL-7B-Instruct-vLLM-OpenAI API Client调用
  • jsp网上招标系统+lw视频讲解
  • 【论文阅读】Reliable, Adaptable, and Attributable Language Models with Retrieval
  • 基于stm32的HAL库的adc采集实验
  • 第18次CCF CSP认证真题解
  • 算法题总结(十九)——图论
  • Redis设计与实现 学习笔记 第十三章 客户端
  • Sora高端制造业WordPress外贸主题
  • 编程学习与心理健康:孩子会因学习编程而焦虑吗?
  • 远程:HTTP基本身份验证失败。提供的密码或令牌不正确,或者您的账户启用了两步验证,您必须使用个人访问令牌而不是密码。
  • BotScreen: Trust Everybody, but Cut the Aimbots Yourself
  • Django 5 增删改查 小练习
  • Python实现Android设备录屏功能及停止录屏功能
  • Linux: Shell编程入门
  • 详解Redis相关缓存问题
  • Java中的反射(2)——调用构造方法和获取继承关系
  • shodan搜索引擎——土豆片的网安之路
  • <项目代码>YOLOv8路面病害识别<目标检测>
  • python中使用pymobiledevice3与手机交互(一)获取udid