在递归中使用Math.Pow()时,执行时间超过了c#

时间:2018-10-15 15:09:19

标签: c# recursion

我正在尝试打印数字的幂。但是我收到执行时间超过错误。

   using System;


public class Program
{

     public static void Power(int B,int C)
    {
        if(B == 1)
            return;
        double temp = Math.Pow(B,C);
        Console.WriteLine(temp);
        Power(B--,C);
    }

    public static void Main()
    {
        Console.WriteLine("Hello World");
        Power(4,2);
    }
}

我收到此错误。

Run-time exception (line -1): Execution time limit was exceeded

请帮助我理解错误。

2 个答案:

答案 0 :(得分:4)

更改此行:

Power(B--,C);

收件人

Power(--B,C); 

B--;
Power(B,C);

这是因为B--B而不是B-1的值发送给方法,然后再减去1,这会导致无限循环,B保持不变。

答案 1 :(得分:0)

您有B--传递B的当前值,然后减去1。 而是写--B。