zoukankan      html  css  js  c++  java
  • [洛谷1920]成功密码

    题目大意:
    求$displaystyle{sum_{i=1}^{n}frac{x^i}{i}}$的值。
    思路:
    考虑暴力模拟:时间复杂度$O(n)$,看起来不错,然而$nleq 10^{18}$,肯定会超时,实测只有30分。
    观察题目发现题目所求的算式与泰勒展开公式极其相似,所以可以先算出$lim=-ln(1-x)$的值。
    由于题目要求的是四位小数,所以当答案$ans$保留四位小数与$lim$相等时,后面的运算已经失去了意义,直接输出结果即可。

     1 #include<cmath>
     2 #include<cstdio>
     3 int main() {
     4     double x;
     5     long long n;
     6     scanf("%lf%lld",&x,&n);
     7     double lim=-log(1-x);
     8     double ans=0;
     9     double t=1;
    10     for(long long i=1;i<=n;i++) {
    11         ans+=(t*=x)/i;
    12         if(round(lim*10000)==round(ans*10000)) break;
    13     }
    14     printf("%.4lf
    ",ans);
    15     return 0;
    16 } 
  • 相关阅读:
    适配器
    适配器
    哈希容器
    迭代器
    redis介绍
    9内核同步介绍
    Redis基础数据结构
    springCloud-Eureka源码分析
    zookeeper伪分布式集群环境搭建
    消息队列核心-如何保证消息不丢失
  • 原文地址:https://www.cnblogs.com/skylee03/p/7363579.html
Copyright © 2011-2022 走看看