我想用C#计算巨大的力量
我已经使用了这段代码。 它可以工作,但我想用更少的时间来计算它。
BigInteger a;
a = Math.Pow(4100000000,4100000000);
Console.Writeline(a);
答案 0 :(得分:-1)
您可以对此进行测试,但是不能确定它是否比本地函数Math.Pow
using System;
public class GFG{
static float power(float x, int y)
{
float 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;
}
}
// Program to test function power
public static void Main()
{
float x = 2;
int y = -3;
Console.Write(power(x, y));
float x = 4100000000;
int y = 4100000000;
Console.Write(power(x, y));
}
}
时间复杂度:O(logn)
空间复杂度:O(1)
算法范例:分而治之。