计算阶乘的方法有多种,这里提供几种常见的编程语言实现方式:
使用循环
```java
public class FactorialLoop {
public static long factorial(int n) {
if (n < 0) {
throw new IllegalArgumentException("输入的数字不能为负数");
}
long result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
public static void main(String[] args) {
int num = 5;
long factorialResult = factorial(num);
System.out.println(num + "的阶乘是:" + factorialResult);
}
}
```
使用递归
```java
public class FactorialRecursion {
public static long factorial(int n) {
if (n < 0) {
throw new IllegalArgumentException("输入的数字不能为负数");
} else if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
public static void main(String[] args) {
int num = 5;
long factorialResult = factorial(num);
System.out.println(num + "的阶乘是:" + factorialResult);
}
}
```
使用Python的math模块
```python
import math
def factorial_loop(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
def factorial_recursive(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial_recursive(n - 1)
print(factorial_loop(5)) 输出 120
print(factorial_recursive(5)) 输出 120
```
使用C语言
```c
include
unsigned long long factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
printf("%d的阶乘为: %llu", n, factorial(n));
return 0;
}
```
使用一行C++代码
```cpp
int factorial(int n) { return n < 2 ? 1 : (n *= factorial(n - 1), n); }
```
这些示例展示了如何使用不同的编程语言和方法来计算阶乘。你可以根据自己的需求和熟悉程度选择合适的方法。注意,递归方法在计算大数阶乘时可能会导致栈溢出,而循环方法则更为稳定。