Расчет мощности огромных чисел за меньшее время - PullRequest
0 голосов
/ 04 мая 2019

Я хочу вычислить силу огромного числа, используя C #

Я использовал этот код. это работает, но я хочу вычислить это за меньшее время.

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

1 Ответ

0 голосов
/ 04 мая 2019

Вы можете проверить это, но не уверены, что это быстрее, чем встроенная функция 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)

Алгоритмическая парадигма: разделяй и властвуй.

...