求n的阶乘(不考虑溢出)

(1)非递归方式(循环方式)
#include <stdio.h>
#include <stdlib.h>
int Factor(int n){
int result = 1;
for (int i = 1; i <= n; ++i){
result = i;
}
return result;
}
int main(){
printf("%d\n", Factor(5));
system(“pause”);
return 0;
}
运行结果为
求n的阶乘(不考虑溢出)
(2)递归方式
1.先判断n是否为1,如果n是1直接返回1,因为1的阶乘还是1
2.如果n不是1,计算n
Factor(n-1)

#include <stdio.h>
#include <stdlib.h>
int Factor(int n){
if (n == 1){
return 1;
}
return n*Factor(n - 1);
}
int main(){
printf("%d\n", Factor(5));
system(“pause”);
return 0;
}
运行结果为
求n的阶乘(不考虑溢出)