用C语言编一程序求10的阶乘

来源:百度知道 编辑:UC知道 时间:2024/05/13 08:25:10
要用上函数的递归调用

本人积分不多 只好全部奉上来表达对回答者的感谢
谢谢大家了!!!
下面两位的回答都很好 但是题目还要求用上函数的递归调用

#include<stdio.h>

int fac(int n); //函数声明

void main()
{
int a;
//int m;
printf("input a int number:");
scanf("%d",&a);
printf("after the function is:");
//m=f(a);
printf("%d\n",fac(a));
}

int fac(int n) //定义fac函数
{
if(n<0)
{
printf("n<0,date error!");
}
else
if(n==0||n==1)
{
return 1;
}
else
return (n*fac(n-1));
}

注意输入的数不能太大了,否则就会出现溢出的情形。
比方说10000的阶乘就要用数组来实现了,这个程序是无法办到的。

递归函数求 10 的阶乘
#include <stdio.h>
long int fun(int n) //递归函数
{
if (n==1||n==0)
return 1;
else
return (n*fun(n-1));
}
void main()
{
int n;
printf("输入要求阶乘的数\n");//输入10就行了。不能输入太大的数,道理你应该知道呵呵!
scanf("%d",&n);
printf("%d的阶乘是%ld\n",n,fun(n));//调用函数<