您的位置:首页 > 编程语言 > C语言/C++

新加坡总理公开多年前写的数独程序源码(C++版)

2015-07-08 16:11 337 查看
/*---------------------------------------------------------------------------------------
新加坡总理李显龙两周前在一个创业者论坛上透露,他最后编写的一个程序是解决数独问题的程序(Sudoku
 solver),还是多年前用 C++ 实现的。
李显龙今天在
个人
 Facebook 主页公布了程序源码。
李显龙说:这个程序非常基础,在 DOS 窗口下运行。按行输入数据(比如:1-3-8—6),程序会打印出解决方案(如果有多种方案,则输出所有的)、程序所用的步数,还有一些搜索数据。该程序做了回溯搜索,选择下一个扇出(fanout)最小的单元格。李显龙给读源码的朋友留了一个问题:如果 X 是一个(二进制)整数,那 (x & -x) 怎么计算的呢?
如果各位发现了他 Bug,可给他留言!

李显龙后来更新的小提示:

As several of you noted, (x & –x) returns the least significant ‘1’ bit of x, i.e. the highest power of two that divides x. This assumes two’s complement notation for negative numbers, as some of you also pointed out. e.g. if
x=12 (binary 1100), then (x & -x) = 4 (binary 100). I didn’t invent this; it is an old programming trick.
-----------------------------------------------------------------------------------------*/
#include
 "stdio.h"

}

程序运行的示例

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: