我最近在“您有什么更具争议的编程观点”中发布了我最喜欢的面试白板编码问题之一,即编写一个使用莱布尼茨公式计算 Pi 的函数。
它可以通过多种不同的方式来处理,退出条件需要一些思考,所以我认为它可能会成为一个有趣的代码高尔夫问题。最短的代码获胜!
假设 Pi 可以使用函数 4 * (1 - 1/3 + 1/5 - 1/7 + ...) 来估计,更多的项可以提供更高的准确性,请编写一个计算 Pi 到 0.00001 以内的函数。
编辑:2008 年 1 月 3 日
正如评论中所建议的那样,我将退出条件更改为 0.00001 以内,因为这就是我真正的意思(由于四舍五入,精确到小数点后 5 位要困难得多,所以我不想在面试中问这个问题,而在 0.00001 以内是更容易理解和实现退出条件)。
另外,为了回答评论,我想我的意图是解决方案应该计算迭代次数,或者检查它何时完成了足够的工作,但是没有什么可以阻止您预先计算迭代次数并使用该数字。我真的很感兴趣地问了这个问题,看看人们会想出什么。