【C语言】用递归法求n!

注意:17的时候越界了

正常int是32位,long int也是32位

#include 
#include 

unsigned long int getJieCheng(int num)
int getJieCheng(int num) 
{
	long int result;
	if(num>=17){
		printf("越界\n");
		exit(-1);
	}
	if(num ==1){
		result =1;
	}else{
		result = getJieCheng(num -1)*num;
	}
	return result;
}
int main()
{
	int num;
	unsigned long int ret;
	puts("请输入要求的阶乘数:");
	scanf("%d",&num);
	ret = getJieCheng(num);
	printf("%d的阶乘是%ld\n",num,ret);
	return 0;
}

你可能感兴趣的:(C语言,c语言,算法,数据结构)