求阶乘的编程方法有多种,包括递归法和循环法。以下是几种不同编程语言的阶乘实现方法:
Python
递归法:
```python
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n - 1)
```
循环法:
```python
def factorial(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
```
C语言
递归法:
```c
include long long factorial(int n) { if (n == 0 || n == 1) { return 1; } else { return n * factorial(n - 1); } } int main() { int num; printf("请输入一个非负整数: "); scanf("%d", &num); printf("%d的阶乘为: %lld\n", num, factorial(num)); return 0; } ``` 循环法: ```c include int main() { int n, i, s = 1; printf("输入n(n>0):\n"); scanf("%d", &n); for (i = 1; i <= n; i++) { s = s * i; } printf("%d\n", s); return 0; } ``` 递归法: ```java public class Factorial { public static long factorial(int n) { if (n == 0 || n == 1) { return 1; } else { return n * factorial(n - 1); } } public static void main(String[] args) { int num; System.out.print("请输入一个非负整数: "); Scanner scanner = new Scanner(System.in); num = scanner.nextInt(); System.out.println(num + "的阶乘为: " + factorial(num)); } } ``` 循环法: ```java import java.util.Scanner; public class Factorial { public static long factorial(int n) { long result = 1; for (int i = 1; i <= n; i++) { result *= i; } return result; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("输入n(n>0): "); int num = scanner.nextInt(); System.out.println(num + "! = " + factorial(num)); } } ``` 这些示例代码展示了如何使用递归和循环两种方法来计算阶乘。你可以根据自己的需求和编程语言选择合适的方法。Java