我的代碼的冪函數存在一些錯誤,它會返回小值的正確答案,但會給出較大值的錯誤答案。爲什麼我得到一個負值?
#include<stdio.h>
long long MOD= 1000000007;
long long power(long long i,long long j)
{
if(j==0)
return 1;
long long d;
d=power(i,j/(long long)2);
if(j%2==0)
return (d*d)%MOD;
else
return (d*d*i)%MOD;
}
int main()
{
long long inv=1;
inv=power(25,MOD-2)%MOD;
printf("%lld\n",inv);
}
有意詳細說明問題嗎? – 2013-03-25 13:00:49
你有什麼問題?編譯錯誤?運行時錯誤?錯誤的結果?如果最後一個,你期望結果是什麼,爲什麼會得到一些價值? – 2013-03-25 13:03:58
沒有錯誤....只是錯誤的答案 – TLE 2013-03-25 13:04:54