【关于%3前缀和性质证明】

本文介绍了一种判断字符串中是否存在长度大于等于2且数值为3的倍数的子串的方法。通过计算字符串中每个位置的前缀和,并利用模运算,可以快速找出所有符合条件的子串。这种方法不仅适用于数字串,对于解决特定数学问题也有一定的帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

命题:
有数字串str,str[i]的前缀和为sum[i],若(sum[a] mod 3) == (sum[b] mod 3),则子串(a, b]为3的倍数

证明:
当sum[i] mod 3 == 0时,sum[i]为3的倍数;若有sum[j] mod 3 == 0(j >= i),则sum[j]也为3的倍数,那么sum[j] - sum[i]也为3的倍数,那么子串(i, j]是3的倍数。

当sum[i] mod 3 != 0时,设sum[i] mod 3 == k, (k != 0),那么sum[i]可以表示为3a+k,若有sum[j] mod 3 == k (j >= i,k != 0),则sum[j]可表示为3b+k,那么sum[j] - sum[i] = (3b+k) - (3a+k) = 3(b-a),是3的倍数。
 

摘自:https://blog.youkuaiyun.com/izayoi_w/article/details/97628213

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值