Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: 爱疯

[已解决][趣题]寻路

[复制链接]
 楼主| 发表于 2010-2-27 18:25 | 显示全部楼层

如9楼,来回不知多少趟的话,就是无穷种可能。所以,虽然没明确说出来,但还是说下的好,每个格子里只存在1个数,比如是5,就不能再是16,22或其他什么数了。

不知,这可不可以用归纳、或递归什么方法。问题是,说了我也不懂,这才是最郁闷的。吃饭去。。。。。。。

[em22]
回复

使用道具 举报

发表于 2010-2-27 19:33 | 显示全部楼层    本楼为最佳答案   

规则是向右,向上历遍所有的路,再向下历遍.都是唯一不重复的,数量相当庞大.....够你看的了

如果允许往后走,这个数量还要*N次方...

Dim Pct As Long

Sub ff()
[a1:j10].Clear
[a1:j10].BorderAround ColorIndex:=3, Weight:=xlThick
Pct = 0
reRng Range("a10"), 0
End Sub
Sub reRng(Rng As Range, ByVal cnt As Integer)
cnt = cnt + 1

Rng.Value = cnt
Rng.Interior.ColorIndex = 4
If Rng.Address = "$J$1" Then
   
    Pct = Pct + 1
    [a12] = "第" & Pct & "条"
    [b12] = cnt & "步"
    'Stop
    For i = 1 To 10000 '延时,目的为了查看,或者你可以用Stop
        DoEvents
    Next
    Rng.Value = ""
    Rng.Interior.ColorIndex = 0
   
    Exit Sub
End If

If Rng.Column < 10 Then
    If Rng.Offset(0, 1) = "" Then
        reRng Rng.Offset(0, 1), cnt
    End If
End If

If Rng.Row = 1 Then
    Rng.Value = ""
    Rng.Interior.ColorIndex = 0
    Exit Sub
End If

If Rng.Offset(-1, 0) = "" Then
   reRng Rng.Offset(-1, 0), cnt
End If

If Rng.Row < 10 Then
    If Rng.Offset(1, 0) = "" Then
        reRng Rng.Offset(1, 0), cnt
    End If
End If
Rng.Value = ""
Rng.Interior.ColorIndex = 0
End Sub

[此贴子已经被作者于2010-2-27 19:38:51编辑过]
回复

使用道具 举报

发表于 2010-2-27 19:49 | 显示全部楼层
回复

使用道具 举报

发表于 2010-2-27 19:53 | 显示全部楼层

应该是10的9次方+10

回复

使用道具 举报

 楼主| 发表于 2010-2-27 20:00 | 显示全部楼层

谢谢飞版!

好恐怖,循环进进出出,一下下我就晕了[em04]

收藏学习

[em27][em27]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-3 03:28 , Processed in 0.209400 second(s), 5 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表