一. 循环法
根据阶乘的计算方法:n!= 1 * 2 * 3*…*n,我们在一个for循环完成 n 次乘法运算。注意因为是连乘,最终阶乘结果可能会非常大所以我们在Fac函数中用 long long 类型的变量来记录阶乘的结果。
#include<stdio.h> long long Fac(int n) { int i = 0; long long ret = 1; for (i = 1; i <= n; i++) { ret *= i; } return ret; } int main() { int num = 0; scanf("%d", &num); printf("%lld\n", Fac(num)); return 0; }
二. 递归法
阶乘规律:当 n=1 时,n!=1 ; 当 n>1 时,n! = n*(n-1)!。利用递归得到最终结果。
#include<stdio.h> long long Fac(int n) { if (n == 1) return 1; else return n * Fac(n-1); } int main() { int num = 0; scanf("%d", &num); printf("%lld\n", Fac(num)); return 0; }
运行结果: