摘要: 问题给定你一个数n,让你找出一个能被n整除的由0和1组成的十进制数。存在多解输出任一个分析一看到题就感觉是数论,但是不存在这样的定理。所以想到了搜索,为了尽可能早的搜到,采取宽度优先搜索。那么如何表示状态和判重呢。如果两个数对n的余数相等,我们可以认为这是一个状态,根据同余定理: (a*10) mod n=((a mod n)*10 )mod n (a*10+1)mod n=((a mod n)*10+1)mod n所以每次只需对余数计算即可,从首位开始搜索,共需搜索n个状态,直到余数等于零。codeprogram liukee;type pig=record num:int64; ys:lo 阅读全文
posted @ 2011-04-19 12:07 liukee 阅读(257) 评论(0) 推荐(0) 编辑