算法题 结果太大对10^9+7取模怎么实现

数据%(int)(1e9+7)

例:

int count=0;

for(int i=0;i<n;i++){//n很大很大

        count=(count+i)%(int)(1e9 + 7);  

}

不要使用count+=i%(int)(1e9 + 7) 因为它只对i取模;

也不要直到return再取模,因为运算过程中数字会很大,超出数据范围会导致数据错误

补充:取模和取余

1.一正一负数时:取模商取小,取余商靠0
-5除以3等于-1.66
-5mod3取模商取小取-2,故-5mod3=-5-3*(-2)=1
-5rem3取余商靠0取-1,故-5rem3=-5-3*(-1)=-2

2.两个都是正数或者两个都是负数时值一样:

5mod3=2,5rem3=2;

-5mod-3=-2,-5rem-3=-2

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值