用C语言编一程序求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的阶乘就要用数组来实现了,这个程序是无法办到的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-11
递归函数求 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));//调用函数
}

如果你只求10的阶乘 可以直接给n 赋值为10 不用输入
第2个回答  推荐于2018-03-13
#include <stdio.h>
int a(int n)
{
if(n==1)
{
return 1;
}
else
{
return n*a(n-1);
}
}
main()
{
int rtn;
rtn = a(10);
printf("%d\n",rtn);
}本回答被提问者和网友采纳
第3个回答  2008-04-11
#include "iostream.h"
int prem(int n)
{
if (n==0) return 1;
return prem(n-1)*n;
}

int main()
{
cout<<prem(10);
}
第4个回答  2008-04-10
long f(int n)
{
if(n==1)return 1;
else return n*f(n-1);
}
main()
{
printf("%ld",f(10));
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网