循环求阶乘
#include<stdio.h>
#include<stdlib.h>
int Factorial1(int a) {
//求a的阶乘
int sum = 1;//定义一个变量存储阶乘值
for (int i = 1; i <= a; i++) {
//定义i做循环
sum = sum * i;
}
return sum;
}
int main(){
int a;
printf("请输入要求的阶乘数:\n");
scanf("%d", &a);
printf("%d",Factorial1(a));
system("pause");
return 0;
}
循环求阶乘就是找一个中间变量储存循环相乘的结果。
递归求阶乘
#include<stdio.h>
#include<stdlib.h>
int Factorial2(int a){
if (a == 1){
return 1;
}
return a*Factorial2(a - 1);
}
int main(){
int a;
printf("请输入要求的阶乘数:\n");
scanf("%d", &a);
printf("%d",Factorial2(a));
system("pause");
return 0;
}
递归求解的思路是先一步一步深入递归,然后在结束条件到来后,再去向循环外取值。