新加坡总理李显龙把他上个世纪用C++写的解数独程序开源了

程序员统治世界——可不是一句说着玩的话。

因为,程序员正统治着世界上一些最伟大的国家……

比如美国。任期即将结束的巴拉克·奥巴马在去年的编程一小时活动里,学会了用 JavaScript 写程序。

他用一行代码:

moveForward(100)

让冰雪奇缘里的 Elsa 往前走了 100 个像素,完成了一个方格。

obama-meme

奥巴马不是第一位学会编程的国家元首。早在上世纪 70 年代,新加坡现任总理李显龙就在剑桥大学三一学院修习数学和计算机科学了。上个月,李显龙在国内的一次科技创业论坛上透露,自己曾「非常享受编程」。

李显龙写程序比奥巴马早得多,写的程序也复杂得多——他在演讲中透露,最后一次编写的是一个完整的解数独程序。昨天下午,他还把代码都开源了。

这个程序使用 C++ ——一门非常经典但至今依然常用的语言编写,在 DOS 窗口下运行。使用命令提示符输入题目:有数字的写数字,没数字的空位用「-」来替代。

比如这样⬇️

Row[1] : ---------
Row[2] : -----3-85
Row[3] : --1-2----
Row[4] : ---5-7---
Row[5] : --4---1--
Row[6] : -9-------
Row[7] : 5------73
Row[8] : --2-1----
Row[9] : ----4---9

然后程序就能 print 出正确的答案。

像这样⬇️

987 654 321
246 173 985
351 928 746
128 537 694
634 892 157
795 461 832
519 286 473
472 319 568
863 745 219

李显龙把这套代码放在了 Google Drive 上。如果你不能翻墙也可以去 GitHub 上查看。

他还说,发现代码 Bug 的人可以给他留言。

lee-hsien-loong

李显龙的两个儿子也都毕业于麻省理工大学,现在在 IT 行业里工作。其中一个儿子还曾经给过他一本 Haskell 语言的书,李显龙表示计划退休后开始学习……

李显龙的造诣不止在计算机科学里。在剑桥大学学习期间他还曾获得数学尖子生「Senior Wrangler」的荣誉。

如果不是因为后来参军以及遵从了父亲李光耀的意愿的话,没准李显龙有机会在 IT 行当里创造伟业……

订阅更多文章