求数字1-10的阶乘
计算1-10的阶乘(C语言实现)
阶乘是指从1乘到该数的连乘积,数学表示为 n! = 1 × 2 × ... × n
。以下是两种常见的实现方法:
方法一:循环实现
通过for
循环逐次计算每个数字的阶乘:
#include <stdio.h>int main() {for (int i = 1; i <= 10; i++) {int factorial = 1;for (int j = 1; j <= i; j++) {factorial *= j;}printf("%d! = %d\n", i, factorial);}return 0;
}
方法二:递归实现
利用递归函数计算阶乘(需注意递归深度和效率问题):
#include <stdio.h>int factorial(int n) {return (n <= 1) ? 1 : n * factorial(n - 1);
}int main() {for (int i = 1; i <= 10; i++) {printf("%d! = %d\n", i, factorial(i));}return 0;
}
输出结果
两种方法均会输出以下结果:
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
注意事项
- 循环实现更适合小范围计算,效率较高。
- 递归实现代码简洁,但频繁函数调用可能影响性能。
- 若需计算更大数的阶乘(如20以上),需使用
long long
或高精度算法以避免溢出。