1
이 코드를 작성하여 2^n mod 10^9+7
을 계산했습니다. 하지만 안타깝게도이 기능은 2^31
까지만 작동하며 이후 모든 대답은 zero
입니다. 누군가가 왜 어떤 빛을 비출 수 있습니까?2의 모듈러 지수가
typedef unsigned long long LL;
const int MOD = 1000000007;
LL powmod(int a,int n)
{
LL p=1;
for(;n;)
{
if(n%2) p=(p*a)%MOD;
if(n/=2) a=(a*a)%MOD;
}
return p;
}
'a'가 'MAX_INT'를 (를) 초과하면 어떻게됩니까? –
'LL powmod (int a, int n)'을'LL powmod (LL a, int n)'로 변경하십시오. –
동의어, 귀하의 이름이 일치하지 않습니다. 'typedef unsigned long long ULL;과'typedef long long LL;'이 더 좋을 것입니다. – glglgl