題目連結:
給定一正整數 n (n < 2 ^ 31)。求 1 / 1 + 1 / 2 + 1 / 3 + …… + 1 / n 之值。請將值四捨五入至小數點第三位後輸出。
首先,這個級數 1 / 1 + 1 / 2 + 1 / 3 …… 有一個數學上的稱呼為「調和級數」。與直覺相反的是,這個級數是會發散的。(儘管發散的速度慢到嚇人)
可以到其
維基頁面看到相關的證明(想看更詳細的,可以切換成英文頁面)。
總之,對於這題來說,1 / 1 + 1 / 2 + 1 / 3 + …… + 1 / n 有相當精確的逼近。即
ln n + γ + (1 / 2n) + (1 / 12n ^ 2)
其中 ln 是自然對數、γ 是
歐拉-馬斯刻若尼常數,其值約為 0.577215664901532 。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。