数字的负指数

时间:2019-11-15 23:06:32

标签: c# math

我制作了该程序,以使用递归找到任意数的幂,并且它起作用了,但是我还需要找到该数的负幂,例如,我的底数= 2,指数= -3,所以结果= 0.125, 我该怎么办?

public static int power(int x, int n )
        {
            if (n < 0)
            {
                Console.WriteLine("invalid");
                return 0;
            }
            else if (n == 1)
            {
                return x;
            }
            else if (n == 0)
            {
                return 1;
            }
            else
            {
                return x * power(x, n - 1);
            }
        }

        static void Main(string[] args)
        {
            Console.Write("enter the base: ");
            int x = int.Parse(Console.ReadLine());
            Console.Write("enter the power:");
            int n = int.Parse(Console.ReadLine());
            int z = power(x, n);
            Console.WriteLine(z);
        }

1 个答案:

答案 0 :(得分:1)

由于将数字加到负数的结果只是1除以加到非负数的数字,因此您可以像这样更改方法(请注意,我们还需要返回{ {1}}类型,因为我们正在处理小数值):

double

现在它可用于负数:

public static double power(int x, int n)
{
    if (n < 0) return 1 / power(x, -n);  // recursive call with '-n' for negative powers
    if (n == 0) return 1;
    if (n == 1) return x;
    return x * power(x, n - 1);
}

输出

enter image description here