|
发表于 2016-4-26 08:28
|
显示全部楼层
本楼为最佳答案
本帖最后由 香川群子 于 2016-4-26 08:30 编辑
一共269个解。其中最大位数=9。【381654729】- Dim c() As Boolean, k&, cnt&
- Sub 前数整除排列() 'ab/2 abc/3 abcd/4...mod =0
- Dim i&, tms#
- [a1].CurrentRegion = ""
- tms = Timer
- ReDim c(1 To 9)
-
- k = 0: cnt = 0: Call dgPL2(0, 1)
- MsgBox Format(Timer - tms, "0.000s ") & k & "/" & cnt
- End Sub
- Sub dgPL2(s&, t&)
- Dim i&, r&
- cnt = cnt + 1
- For i = 1 To 9
- If Not c(i) Then
- r = s * 10 + i
- If r Mod t = 0 Then
- If t > 2 Then k = k + 1: Cells(k, 1) = t: Cells(k, 2) = r
- c(i) = True: Call dgPL2(r, t + 1): c(i) = False
- End If
- End If
- Next
- End Sub
复制代码 |
评分
-
查看全部评分
|