您的位置:首页 > 编程语言

#191. 搞笑的代码

2017-02-09 16:28 225 查看
问题可以转化为求 n*(1/1+1/2+1/3~1/n)若O(n)无法解决问题时,则需要用一个黑科技。当n很大时,1/1+1/2+1/3~1/n约等于ln(n)+E(欧拉常数
 0.57721566490153286060651209)。
#include<bits/stdc++.h>using namespace std;#define db double#define ll long longconst db E=0.57721566490153286060651209;int main(){ll n;db Sum=0;scanf("%lld",&n);if (n<=10000000) {for (ll i=1;i<=n;i++) Sum+=(db)n/(db)i;}else Sum=n*(log(n)+E);printf("%.0lf",Sum);return 0;}
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: