我在网上找到了多个迭代解决方案来定义n
的 factorial 。他们看起来像这样:
int Factorial(int number)
{
int factorial = 1;
for (int i = 1; i <= number; i++)
factorial *= i;
return factorial;
}
不是Factorial(0) = 1
和Factorial(1) = 1
吗?因此,for循环中的计数器变量应该以 2 开头,因为它下面的所有内容都会产生 1 。
for (int i = 2; i <= number; i++)
factorial *= i;
为什么他们使用 1 作为计数器的起始编号?
答案 0 :(得分:3)
没关系 - 1或2都可以使用,因为乘以1什么也不做。但是,大多数循环以0或1开头,这只是遵循模式。此外,阶乘的定义通常被称为所有正整数的乘积,直到n,因此这包括一个。从本质上讲,1在美学上是一个更好的起点。
答案 1 :(得分:-2)
对于python中的迭代函数:
def iterative_factorial(n):
x = 1
for i in range(2,n+1):
x *= i
return x
print(iterative_factorial(n))