码迷,mamicode.com
首页 > 其他好文 > 详细

小优化

时间:2016-04-01 23:20:06      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

技巧,  神奇 ;  

调和级数 1+1/2+1/3+.....+1/n ;   据说发散;  

#include <cstdio>
const int MAXN = 1e8; 
double f[MAXN/50]; int top; 
const int N = 1e8; 
void getf() 
{ 
    top = 0; f[top++] = 0; double res = 0; 
    for(int i = 1; i <= N; i++)     // 优化 ; 
    { 
        res += 1.0 / i; 
        if(i % 50 == 0) 
        { 
            f[top++] = res; 
        } 
    } 
} 
int main() 
{
    getf(); 
    int t; scanf("%d", &t); 
    while(t--) 
    { 
        int n; scanf("%d", &n); 
        int s = n / 50; 
        double ans = f[s]; 
        for(int i = s * 50+1; i <= n; i++) { 
            ans += 1.0 / i; 
        } 
        printf("%.4lf\n", ans); 
    } 
    return 0; 
}

 

小优化

标签:

原文地址:http://www.cnblogs.com/fengshun/p/5346551.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!