在更少的时间内计算出巨大的力量

时间:2019-05-04 20:02:13

标签: c# math biginteger

我想用C#计算巨大的力量

我已经使用了这段代码。 它可以工作,但我想用更少的时间来计算它。

BigInteger a;
a = Math.Pow(4100000000,4100000000);
Console.Writeline(a);

1 个答案:

答案 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)

     

算法范例:分而治之。