Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 C语言中的循环与阶乘计算#_C# 4.0 - Fatal编程技术网

C# 4.0 C语言中的循环与阶乘计算#

C# 4.0 C语言中的循环与阶乘计算#,c#-4.0,C# 4.0,我刚开始学c。我试着计算一个数字的阶乘函数。循环运行的次数超出了我的理解。下面是函数的代码 static int func(int p) { int l = 1; while(p>0) { l = l*p; p--; } } 这里是解释 int l=1//因为是初始数字 while(p>0)//这意味着当您想要得到阶乘的数字大于0时,循环中的所有内容都将执行 假设p=3,那么: 第一次-l*3=3。并将

我刚开始学c。我试着计算一个数字的阶乘函数。循环运行的次数超出了我的理解。下面是函数的代码

 static int func(int p)
 {
     int l = 1;
     while(p>0)
     {
         l = l*p;
          p--;
     }
  }
这里是解释

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

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

假设p=3,那么:

第一次
-l*3=3。并将-1减为p

第二次
-现在,p=2,然后l*2=6,并将-1减去p

第三次
-现在,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;
  }

现在好多了?:)

循环运行次数为p。每转一圈,p=p-1;(p--;)在p为0时运行循环中断。仅供参考-您的函数没有返回,因此不会编译。它还将为
p
>12生成不正确的结果,因为它将溢出
l
。它不起作用@Oscar Bralo它的代码与现在差不多。。我只是忘了提到返回语句,但即使这样也不起作用。结果仍然是0。对我有效。复制我评论的代码。或者只在你的代码中添加返回值。对我来说也是如此。我第二次又犯了一些错误。谢谢,太好了!!如果答案对你有帮助,请标记为正确答案,以便帮助其他人;)我很高兴帮助你!