阶乘算法可以通过多种编程语言实现,包括循环和递归两种方法。以下是几种常见编程语言的阶乘算法程序示例:
1. 使用循环计算阶乘
Python
```python
def factorial_loop(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
print(factorial_loop(5)) 输出 120
```
Java
```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);
}
}
```
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);
unsigned long long result = factorial(n);
printf("%d 的阶乘为: %llu\n", n, result);
return 0;
}
```
2. 使用递归计算阶乘
Python
```python
def factorial_recursive(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial_recursive(n - 1)
print(factorial_recursive(5)) 输出 120
```
Java
```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);
}
}
```
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);
unsigned long long result = factorial(n);
printf("%d 的阶乘为: %llu\n", n, result);
return 0;
}
```
3. 使用内置函数(Python)
```python
import math
result = math.factorial(5)
print(result) 输出 120
```
总结
循环方法:通过一个循环从1乘到n,逐步累乘得到结果。
递归方法:利用递归公式 n! = n * (n-1)!,函数调用自身计算阶乘。
内置函数:许多编程语言提供了内置的阶乘计算函数,如Python的`math.factorial()`。
根据具体需求和编程环境选择合适的方法即可。