C语言 计算阶乘

/*************************************************************************
	用函数递归求阶乘
	输入的数字最好小于15,否则可能溢出
 ************************************************************************/

#include<stdio.h>

long fact(long n);
int main()
{
	int a;
	long b;
	printf("请输入一个数字:");
	scanf("%d",&a);
	b = fact(a);
	printf("%d的阶乘是%ld\n",a,b);
	return 0;
}
long fact(long n){
	long ans;
	if(n>0){
		ans = n * fact(n-1);
	}else{
		ans = 1;
	}
	return ans;
}

/*************************************************************************
  用循环的方式计算阶乘
 ************************************************************************/

#include<stdio.h>

long fact(int a);

int main()
{
	int a;
	long b;
	printf("请输入一个数:");
	scanf("%d",&a);
	b = fact(a);
    printf("%d的阶乘是%ld\n", a, b);
    return 0;
}
long fact(int n){
	long ans;
	for( ans = 1;n > 1;n--){
		ans *= n;
	}
	return ans;
}

posted @ 2020-06-08 15:44  起美了  阅读(1073)  评论(0编辑  收藏  举报