Scala程序 寻找一个数字的阶乘
给定一个数字 N ,任务是计算 N 的阶乘 。 在数学中,一个正整数 N 的阶乘是所有小于或等于N的正整数的乘积。
Input : N = 3
Output : 6
Input : N = 5
Output : 120
建议:请先在={IDE}上尝试你的方法,然后再继续解决
方法一:迭代法 在这个方法中,我们将使用一个循环来迭代数字序列,以获得阶乘。
以下是上述方法的实现
输出:
时间复杂度。 O(n ),因为for循环迭代了n次。
辅助空间。 O(1) ,因为使用的唯一变量是一个单一的整数(f),无论输入的大小如何,都保持不变。
方法2:使用递归 在这种方法中,递归公式 N!=N*(N-1)!
被用来计算给定数字的阶乘。下面是上述方法的实现。
输出:
时间复杂度。 O(n) ,其中n是递归调用的次数。这是因为阶乘()函数递归调用自己n次来计算一个给定数字的阶乘。因此,时间复杂度与输入大小成线性关系。
辅助空间: O(n), 其中n是递归调用的次数。这是因为在每次递归调用中,都会创建一个新的堆栈框架来存储局部变量和返回地址。