http://www.cnblogs.com/jiangshiyong/archive/2012/08/27/2657862.html http://www.writecodes.com/question/613.html