回 帖 发 新 帖 刷新版面

主题:出一道送分题

在N个格子里填上数字“1”或“2”,但连续M格内不能都填“1”。
求符合条件的填法有多少种?
输入范围:2<=N<=[color=FF0000][b]50[/b],[/color]2<=M<=5,N>=M。

(注:我想要能在2秒之内出结果的算法,太慢的不给分。)

回复列表 (共14个回复)

11 楼

嗯,算你狠,当 N > M*2 的时候结果不对。我再改:

[color=0000ff]Function NewMoz(N, M)
NewMoz = 2 ^ N - 2 ^ (N - M + 1) + 1 - NewMoz2(N, M)
End Function

Function NewMoz2(N, M)
For i = 1 To N - M - 1
    If i < M Then j = 2 ^ i - 1 Else j = NewMoz(i, M) - 1
    S = S + (j * 2 ^ (N - M - 1 - i))
Next
NewMoz2 = S
End Function[/color]

你再试。

12 楼

Debug.Print "YES",啥意思呀?

13 楼

1、输入N的值,打印下面图形。(10分)
(N=2时)   (N=3时)    
   #            #
  ###          *#*
   #          #####
               *#*
                #

14 楼


[b]没实干[/b][em9]

我来回复

您尚未登录,请登录后再回复。点此登录或注册