嘤嘤嘤,快速幂取模都不会了???自闭了!
取模运算(“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;
}