求阶乘(不考虑溢出)

问题:输入一个数,算出它的阶乘

1、非递归:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int fac(int n)
{
    
    
	int i = 0;
	int ret = 1;
	for (i = 1;i <= n;i++)
	{
    
    
		ret *= i;
	}
	return ret;
}
int main()
{
    
    
	int n = 0;
	scanf("%d", &n);
	int ret = fac(n);
	printf("%d\n", ret);
	return 0;
}

2、递归:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int fac(int n)
{
    
    
	if (n <= 1)
		return 1;
	else
		return n * fac(n-1);
}
int main()
{
    
    
	int n = 0;
	scanf("%d", &n);
	int ret = fac(n);
	printf("%d\n", ret);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_45658339/article/details/108269741