C语言第二十九弹---求n的阶乘

C语言求n的阶乘

递归法

思路:因为n的阶乘是 nn-1…321,所以设定初始条件为1 ,递归使用n*函数(n-1)这样就可以不断接近初始条件。

代码如下

#define _CRT_SECURE_NO_WARNINGS
#include 

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

你可能感兴趣的:(c语言,算法,开发语言)