我在网上发现了多个用于定义 阶乘 的迭代解n。他们看起来像这样:
n
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循环内的counter变量应以 2 开头,因为它下面的所有内容都将产生 1 。
Factorial(0) = 1
Factorial(1) = 1
for (int i = 2; i <= number; i++) factorial *= i;
他们为什么使用 1 作为计数器的起始编号有某些原因吗?
没关系-1或2都可以,因为乘以1不会执行任何操作。但是,大多数循环以0或1开头,并且仅遵循该模式。同样,阶乘的定义通常表示为直到n的所有正整数的乘积,因此包括1。从本质上讲,1是一个更好的起点。