我刚开始学习c#。我尝试计算一个数字的阶乘函数。循环运行的次数超出了我的理解范围。这是函数的代码。
static int func(int p)
{
int l = 1;
while(p>0)
{
l = l*p;
p--;
}
}
答案 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;
}
现在好些? :)