我必须找到 (1+sqrt(3))^n 的值,其中 n < 10^9。由于这个数字可能非常大,我们必须打印 ans%1000000007。我为此编写了以下函数。
double power(double x, int y)
{
double temp;
if( y == 0)
return 1;
temp = power(x, y/2);
if (y%2 == 0)
return temp*temp;
else
{
if(y > 0)
return x*temp*temp;
else
return (temp*temp)/x;
}
}
现在,我无法理解如何处理模数条件。有人可以帮忙。