2011-12-15 52 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