[2016-04-21][light]OJ[1234][Harmonic Number]

[2016-04-21][light]OJ[1234][Harmonic Number]

  • 时间:2016-04-21 22:18:26 星期四

  • 题目编号:[2016-04-21][light]OJ[1234][Harmonic Number]

  • 题目大意:k=1n1kn(1,108),108

  • 分析:

    • 想法是打表,然后输出,但是直接打表会爆内存
    • ,100,1100,
    • n100,n100×100
  1. #include<cstdio>
  2. using namespace std;
  3. const int maxn = 1E8 + 10;
  4. double a[maxn / 100 + 10];
  5. void ini(){
  6. double cur = 0;
  7. for(int i = 1 ; i <= 1E8 ;++i ){
  8. cur += double(1)/i;
  9. if(i % 100 == 0) a[i/100] = cur;
  10. }
  11. }
  12. int main(){
  13. ini();
  14. int t,cntcase = 0;
  15. scanf("%d",&t);
  16. while(t--){
  17. int n;
  18. scanf("%d",&n);
  19. double cur = a[n / 100];
  20. for(int i = n / 100 * 100 + 1;i <= n ; ++i){
  21. cur += double(1) / i;
  22. }
  23. printf("Case %d: %.10lf\n",++cntcase ,cur);
  24. }
  25. return 0;
  26. }


来自为知笔记(Wiz)


posted on 2016-04-21 22:26  红洋  阅读(134)  评论(0)    收藏  举报

导航