连续子串的整除|豆包MarsCode AI刷题

41 阅读1分钟

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 的倍数)