一张纸对折多少次才到珠穆朗玛峰高度

题目: 一张纸厚度为 0.1 毫米,并且纸张大小合适,问对折多少次,厚度才达到珠穆朗玛峰的高度(8848米)?(不考虑纸能被对折的最多次数)

答案: 用对数解出来的结果约等于 26.4 次,但题目要求是达到珠峰高度,所以应该是 27 次,才能超过这个高度。可以用编程方法解决,得到的结果是 27。

写于2014-09-24:

这道题是我读高中时的课堂编程题,多年后整理笔记看到这个题目、这个答案,不禁觉得很忧伤。8848米,看上去多么宏伟壮观,心中默默抬头,那是遥不可及;0.1 毫米看上去多么渺小,可以被多少人忽略掉的数字。下面是我用 Common Lisp 写的计算过程:

(defun folding (paper-height times)
  ;; 珠穆朗玛峰高度,单位毫米
    (if (> paper-height 8848000)
        times
      (folding (* 2 paper-height) (1+ times))))

;; 纸厚度为0.1
(folding 0.1 0)

REPL 打印出 27 时,不得不让人感到唏嘘。