求s的前n项的和(保留4位小数)

求 s=1 + 1/2! +....+ 1/n!

     输入1个正整数n,计算 s 的前n 项的和(保留 4 位小数)。要求定义并调用函数fact(n)计算n 的阶乘

#include <stdio.h> 
int fact(int n) 
{ 
long s=1; 

if(n == 1) 
s=1; 
if(n != 1) 
s=n*fact(n-1); 

return s; 

} 
void main() 
{ 
 double sum = 0;
 int i;
 printf("请输入数字:");
 scanf("%d",&i);
 int n=1; 
 for(n;n<=i;n++) 
 { 
  sum += 1.0/fact(n); 
 } 
 printf("%.4f\n",sum); 
}

本题fact部分用来计算数列中每一项的大小,先将s定义初值为1。

用if语句判断主函数调用时n值是否为1。如果为1则将s赋值为1;如果不为1,则采用s=n*fact(n-1)语句,在这里调用自身,反复进行该函数直到n为1

再让返回值为s,从而得到某一项的数值的大小

主函数部分对sum赋初值为0,从而确保算法的准确性,之后运用printf提示输入项数的多少,并运用循环语句反复调用fact函数,从而得到每一项的项数值并将每一项的项数值做累加

最后输出sum值,用%.4确保s的数值保留四位小数

此时sum值即为题目要求的s值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值