幾天前一個做會計的朋友有個問題問我。她說最近幾個月接到一個新活把她累死了。這個活是說有一堆帳,加起來是‘0’(有時也可能是某個數), 但是在這個一堆帳裏還得對上子帳,就是相關的兩個或者更多的(比如是3正2負加起來是零),她說問了她的頭和以前工作的人就是憑眼睛來看,這樣瞎試把人累死了。
我聽說了就說了給了她一個想法,她回去用VBA(她好像對這個很熟),說很有幫助。但是她一次似乎最多隻能處理20來個數,再多了她的excel就蹦潰了。還有更奇怪的是明明有四個數眼睛看起來加起來是零,但是用VBA或其它編程語言做加起來就說不是零,我看了她那四個數據知道就是怎麽回事了(估計做計算機的很多會知道怎麽回事)。
我後來說要不我給你寫個程序做吧,我給她寫了一個簡單的版本,她試用了高興的不得了,又提新要求,我說讓兒子幫你做吧。兒子拿過去很快就做好了,我有點吃驚是他根本不太了解那個編程語言啊(JavaScript)。然後這位朋友不斷地提新的要求,兒子總是很快一個一個地幫她完成。至昨天大約兩天的功夫,她說對她來說已經完美無缺了。她說她要給兒子報酬。。。我說隨便吧!
對了,說一下技術吧,最關鍵的是一個著名叫k-sum的問題,這個問題簡單的形式2-sum/3-sum也是計算機麵試可能經常問到的問題。如果家裏有孩子對這方麵有興趣的也可以讓他們試一試。我給那人第一個版本是python,基本從網上搬過來的,但是處理了她那個四個數加起來應該是0但實際算起來不是零的問題。
兒子真是一言難盡,有比較聰慧的一麵,但是前幾天看到他麵試時的回複,我真想用鞋底抽他(不過還是笑笑算了)。附圖第一張是我做的最初版本,第二張是兒子的‘完美’版本(據‘客戶’要求,界麵有些地方故意隱秘因為她不想讓其他人知道她這個"秘密武器")。第三張是兒子的著名麵試後“Thank you" letter!