你如何正确地调用递归(阶乘)

时间:2017-10-27 01:13:17

标签: c# recursion

我有一个带有递归的类来做一个阶乘。我的问题是如何正确地调用它,因为我在尝试这样做时遇到了一堆错误。

这是我的因子课

public class Factorial
{
    public static double factorial_Recursion(int number)
    {
        if (number == 1)
            return 1;
        else
            return number * factorial_Recursion(number - 1);
    }
}

所以我的问题是我如何设置递归运行的次数然后显示它。 (顺便说一句,我是以windows格式表示的)我对C#很新,这是我第一次使用递归。对不起,如果它非常愚蠢,谢谢你的帮助!

4 个答案:

答案 0 :(得分:1)

我想你提到过你在使用c#的Windows中开发了这个。

只需在按钮点击事件中调用它,在表单中添加标签(给它一个id =" lblResult")并添加一个按钮,双击它以添加点击事件然后设置文本标签对以下函数调用的结果。

lblResult.Text = Factorial.factorial_Recursion(10).ToString();

答案 1 :(得分:0)

  

如何设置递归运行然后显示的次数   它

您已经做过:您将递归设置为运行n次,因为输入是正整数n

答案 2 :(得分:0)

public class Factorial
{
    public static double factorial_Recursion(int number)
    {
        if (number == 1)
            return 1;
        else
            return number * factorial_Recursion(number - 1);
    }
}

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(Factorial.factorial_Recursion(10));
    }
}

给出

enter image description here

或清理了一下

 public class MathStuff
 {
     public static double Factorial(int n) => n == 1? 1 : n * Factorial(n - 1);
 }

 class Program
 {
     static void Main(string[] args)
     {
         Console.WriteLine(MathStuff.Factorial(10));
     }
 }

另外,有了你所拥有的,使用少于1的调用将溢出堆栈

答案 3 :(得分:0)

由于这是static方法,因此您不必实例化该类并按原样调用它。

 Factorial.factorial_Recursion(5);

请参阅example