粗心的物理學家




世界著名的物理學家Albert正在計算的值。不幸的是,由於這項工作十分枯燥無味,這位偉大的物理學家得到了錯誤的答案。由於這一錯誤,它製造的幾顆原子彈失去了控制,射向了五座重要的城市和一片熱帶雨林……

現在你的任務是幫助這位物理學家糾正這一錯誤,從而拯救世界。對於給定的n (n≤5*10^6),計算代數式的值。

Input

輸入數據由多組數據組成。每組數據一行,僅有一個整數,表示n的值。

Output

對於每組數據,輸出代數式的值(小數點後保留12位有效數字)。

Sample Input

2

Sample Output

1.500000000000



對於這道題我只能說 ,好坑的一道題,至今我也不知道什麼原理的,一到水題;




重點就是從後面往前面遍歷,不能從前面往後面



#include <iostream>
#include <cstdio>
#include<algorithm>
#include <cstring>
using namespace std;

int main()
{
    double num;
    int i;
     double sum;
    while(scanf("%lf",&num)!=EOF)
    {
        sum=0.0;
       // for(i=1;i<=num;i++)<span style="background-color: rgb(102, 255, 153);">這樣寫是不對的</span>
      for(i=num;i>=1;i--)//要從前面往後面遍歷
        {
            sum+=1.0/i;
        }
        printf("%.12lf\n",sum);
    }
    return 0;
}

 、
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章