新加坡总理公开多年前写的数独程序源码(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. ifx=12 (binary 1100), then (x & -x) = 4 (binary 100). I didn’t invent this; it is an old programming trick.
-----------------------------------------------------------------------------------------*/
#include "stdio.h"
}
程序运行的示例
相关文章推荐
- FFT快速傅立叶算法纯C语言版本
- C语言内存分析
- C++调用一个成员函数的需求this指针的情况
- 黑马-C语言-结构体
- C++——对象和类
- 黑马程序员-C语言学习笔记(循环)
- C++ 开源库
- eclipse安装C++工程环境----CDT环境————eclipse开发openCV环境准备2
- 黑马程序员——C语言基础---基本运算
- 黑马-C语言-宏定义
- c++ 字符串转数字 数字转字符串
- C语言的字节对齐及#pragma pack的使用
- c++判断图片格式
- 端口映射源码C++(转)
- C++中各种类型的成员变量的初始化方法
- C++顺序容器vector、deque、list
- C++管理指针成员
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数
- C#与C/C++的交互
- C++实现二叉树之二叉链表