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