http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832364.html http://www.cnblogs.com/scandy-yuan/archive/2013/01/08/2851324.html