取模!了解一下!

在这里插入图片描述
嘤嘤嘤,快速幂取模都不会了???自闭了!
取模运算(“Modulo Operation”)和取余运算(“Complementation ”)两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。取模主要是用于计算机术语中。取余则更多是数学概念。
取余应该这样写 (sum + xxx + MOD) % MOD 不是直接sum % MOD
计算机里面的取模运算 和数学的取余运算不太一样 然后你们直接sum%mod,会有 负数加正数了

#include <bits/stdc++.h>
using namespace std;
const int mo = 192608017;
long long int mi(long long int a,long long int b)
{
    long long int ans=1;
    a=a%mo;
    while(b!=0)
    {
        if(b&1)ans=ans*a%mo;
        b >>= 1;
        a=a*a%mo;
    }
    return ans;
}
int main()
{
    long long int n,m;
    long long int sum = 0;
    cin>>n;
    for(int i = 1;i <= n;i++)
    {
        cin>>m;
        sum = (sum + mi(m,i) + mo) % mo;//划重点!
    }
    cout<<sum%mo;
    return 0;
}
发布了60 篇原创文章 · 获赞 22 · 访问量 6981

猜你喜欢

转载自blog.csdn.net/weixin_43786143/article/details/88985388