c语言阶乘 ii多测试,C语言经典题目:求阶乘n!=n*(n-1)*...*1,阶乘和s=1!+(2)!+(3)!+...+n!...

本文探讨了计算阶乘的不同方法,包括递归实现(如n! = n * fac(n-1))和迭代求和(1! + 2! + ... + n!),并展示了如何扩展至更复杂的累加范围(n! + (n+1)! + ... + m!)。同时涉及了分式求值,如e=1+1/1!+1/2!+...+1/n!的计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.求阶乘n!=n*(n-1)*...*1

思路:利用递推,迭代;

找规律:f(1)=1;f(2)=2*1;f(3)=3*2*1=3*(f(2));

一般公式:f(n)=n*f(n-1)

float fac(int n)

{

//求n!=n*(n-1)*...*1;

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

{

return 1;

}

return n * fac(n - 1);

}

2.计算s=1!+(2)!+(3)!+...+n!

float getfac_s(int n)

{

//计算s=1!+(2)!+(3)!+...+n!

float fac(int n);//声明

float sum = 0;

int i;

for (i = 1; i <= n; i++)

{

sum += fac(i);

}

return sum;

}

3.s=n!+(n+1)!+(n+2)!+...+m!

float getfac_s(int m, int n)

{

//计算s=n!+(n+1)!+(n+2)!+...+m!

int i;

float s = 1, sum = 0;

for (i = 1; i <= m; i++)

{

s = s * i;

if (i >= n)

{

sum += s;

}

}

return sum;

}

4.求分式e=1+1/1!+1/2!+...+1/n!

float getfac_e(int n) {

//分式求值,记得要用浮点型

//e=1+1/1!+1/2!+...+1/n!;

int i;

float e = 1, t;//项

for (i = 1; i <= n; i++)

{

t = float(1.0) / fac(i);

e += t;

}

return e;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值