Problem J. L03-10循环计算分数(有亿点点绕~)

 

输入

输入xx以及eps的值

输出

输出该公式最后的结果(保留6位小数)

样例

标准输入复制文本
1 1
标准输出复制文本
0.875000

提示

循环并判断最后一项绝对值是否小于eps

解题思路:

                找规律: 1、先是 -1/2,1/2 *3/4   -1/2 * 3/4 *5/6       可知为每轮前都乘一个负号,然后每轮再新乘    (i)/(i+1),且下一轮开始前 i+=2;

                                2、每轮都要新乘(x的i+2次方)/(i+3)

#include <bits/stdc++.h>
int main ()
{//准备工作
    int x;
    double eps,sum,next,c=1,i=1;
    scanf("%d %lf",&x,&eps);
    sum=x;
    
   	do
    {	//规律
        c=(-1)*abs(c)*(i/(i+1));
        next=c*pow(x,i+2)/(i+3);
        sum+=next;
        i+=2;
    } while(fabs(next)>=eps);
    
    printf("%.6lf",sum);
    return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值