循环和C#中的因子计算

时间:2014-05-18 18:28:21

标签: c#-4.0

我刚开始学习c#。我尝试计算一个数字的阶乘函数。循环运行的次数超出了我的理解范围。这是函数的代码。

 static int func(int p)
 {
     int l = 1;
     while(p>0)
     {
         l = l*p;
          p--;
     }
  }

1 个答案:

答案 0 :(得分:0)

这里的解释。

int l = 1 //因为是初始数字

while (p > 0) //这意味着,当您想要获得阶乘的数字大于0时,循环内的所有内容都将执行

想象一下,p = 3,然后:

1st time - l * 3 = 3.并将-1减去p。

2nd time - 现在,p = 2,然后l * 2 = 6,并将-1减去p。

3rd time - 现在,p = 1,然后是l? 1 = 6,并且子句-1到p。

现在p = 0,然后循环结束。

**如果p = 3,则执行while循环的次数为3。

如果p = 10,则次数为10. **

你的功能将是这样的:

public int GetFactorial(int number)
 {
     int start = 1;
     while(number > 0)
     {
         start = start * number;
         number--;
     }
     return start;
  }

现在好些? :)