題意:給定一個自然數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搜索
由於可能出現大整數,處理技巧:用一個結構,保存每次添加的數字,然後形成一個數字鏈表,最後打印輸出
代碼如下: