世界著名的物理學家Albert正在計算的值。不幸的是,由於這項工作十分枯燥無味,這位偉大的物理學家得到了錯誤的答案。由於這一錯誤,它製造的幾顆原子彈失去了控制,射向了五座重要的城市和一片熱帶雨林……
現在你的任務是幫助這位物理學家糾正這一錯誤,從而拯救世界。對於給定的n (n≤5*10^6),計算代數式的值。
Input
Output
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;
}
、