题意:给定一个自然数N,以及M个不同的数字X1,X2,...Xm,求N的最小正整数倍数,满足这个数的每个数字都是M个数字中的其中一个
算法:对于给定两个数A,B,如果A和B模N都相同,设为C,即:
A=x*N+C
B=y*N+C
那么如果在A后面加上一个数字能够被N整除,则在B后面加上这个数字也肯定可以被N整除
即:(A*10+X)%N==(B*10+X)%N
因此可以利用模N的结果进行判重,只保留相同余数的最小数,于是采用BFS搜索
由于可能出现大整数,处理技巧:用一个结构,保存每次添加的数字,然后形成一个数字链表,最后打印输出
代码如下: