编写计算阶乘的函数c语言 c语言5的阶乘

C语言设计一个函数求阶乘

1

创新互联是一家集网站建设,香坊企业网站建设,香坊品牌网站建设,网站定制,香坊网站建设报价,网络营销,网络优化,香坊网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

设计阶乘函数。

按照数学定义,对于n的阶乘,如果n为0,则返回1.

否则返回1*2*3*...*n的值。用循环实现。

2

在主函数中输入要求阶乘的值。

3

调用函数计算阶乘。

4

输出结果。

代码:

int fac(int n)

{

int r = 1;

int i;

for(i = 2; i =n; i ++)

r*=i;

return r;

}

int main()

{

int n,r;

scanf("%d",n);

r = fac(n);

printf("%d!=%d\n",n,r);

}

C语言中如何编程计算阶乘

常见的有两种:

递归版本:

int Fac(int n){

if(n==0) return 1;

return n*Fac(n-1);

}

还有一种是循环版:

int ans=1;

for(int i=1;i=n;i++) ans*=i;

测试方法:

#includestdio.h

int Fac(int n){

if(n==0) return 1;

return n*Fac(n-1);

}

int main(){

int n;

while(scanf("%d",n)!=EOF){

int ans=1;

for(int i=1;i=n;i++) ans*=i;

printf("%d %d\n",ans,Fac(n));

}

return 0;

}

有个值得注意的地方:阶乘时,数增大的很快,在n达到13时就会超过int的范围,此时可以用long long或是 __int64来存储更高精度的值,如果还想存储更高位的,需要用数组来模拟大数相乘。

C语言求阶乘

其实这个只能算到12的阶乘,因为13的阶乘等于6227020800,它已经大于2的31次方了,也就是超过了int所能表示的最大值了(溢出),所以你可以把int

改为double.

#include

stdio.h

#include

stdlib.h

double

f(int

n)

{

if(n==0||n==1)

return

1;

return

n*f(n-1);

}

int

main()

{

int

n,k,i;

printf("请输入一个数:");

scanf("%d",k);

for(i=1;i=k;i++)

{

printf("第%d个数为:",i);

scanf("%d",n);

printf("%d!=%f\n",n,f(n));

}

}

我把你写的稍微改了一下,你看看。


文章名称:编写计算阶乘的函数c语言 c语言5的阶乘
标题来源:http://ybzwz.com/article/hieico.html