C语言求n的阶乘
递归法
思路:因为n的阶乘是 nn-1…321,所以设定初始条件为1 ,递归使用n*函数(n-1)这样就可以不断接近初始条件。
代码如下
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int FindFact(int n) { if (n == 1) { return 1; } else { return n * FindFact(n - 1); } } int main() { int n = 0; scanf("%d",&n); int ret = FindFact(n); printf("%d",ret); return 0; }
非递归法
思路:通过循环1-n使用一个临时变量与1-n都乘一遍即可。
int FindFact(int n) { int tmp = 1;//tmp要为1 for (int i = 1; i <= n; i++) { tmp *= i; } return tmp; } int main() { int n = 0; scanf("%d",&n); int ret = FindFact(n); printf("%d",ret); return 0; }