C语言循环和递归求阶乘图解

C语言循环和递归求阶乘详解

循环求阶乘

#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;
}

在这里插入图片描述
递归求解的思路是先一步一步深入递归,然后在结束条件到来后,再去向循环外取值。

猜你喜欢

转载自blog.csdn.net/zhaocx111222333/article/details/109535250