2011-12-15 203 views
2

我在网络中发现了多个迭代解决方案,用于定义因子n。他们是这个样子:迭代因子执行

int Factorial(int number) 
{ 
    int factorial = 1; 

    for (int i = 1; i <= number; i++) 
     factorial *= i; 

    return factorial; 
} 

Factorial(0) = 1Factorial(1) = 1?因此,for循环中的计数器变量应该以开头,因为它下面的所有东西都会产生。

for (int i = 2; i <= number; i++) 
     factorial *= i; 

是有一些原因,他们使用作为计数器的起始编号?

回答

3

这并不重要 - 无论是1还是2都可以工作,因为乘以1无效。但是,大多数循环都以0或1开始,这只是模式。此外,阶乘的定义通常被认为是所有正整数到n的乘积,所以这包括一个。从本质上讲,1在美学上是一个更好的起点。

-2

在Python中的迭代函数:

def iterative_factorial(n): 
    x = 1 
    for i in range(2,n+1): 
     x *= i 
    return x 
print(iterative_factorial(n)) 
+1

这如何回答这个问题? – undefined 2016-10-14 19:49:13