主题:出一道送分题
Mato完整版
[专家分:1270] 发布于 2008-04-21 22:00:00
在N个格子里填上数字“1”或“2”,但连续M格内不能都填“1”。
求符合条件的填法有多少种?
输入范围:2<=N<=[color=FF0000][b]50[/b],[/color]2<=M<=5,N>=M。
(注:我想要能在2秒之内出结果的算法,太慢的不给分。)
最后更新于:2008-04-22 09:53:00
回复列表 (共14个回复)
11 楼
moz [专家分:37620] 发布于 2008-04-27 17:50:00
嗯,算你狠,当 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 楼
以吃为贵 [专家分:60] 发布于 2008-10-24 18:03:00
Debug.Print "YES",啥意思呀?
13 楼
xuehua2008 [专家分:20] 发布于 2008-10-24 18:20:00
1、输入N的值,打印下面图形。(10分)
(N=2时) (N=3时)
# #
### *#*
# #####
*#*
#
14 楼
三国风云 [专家分:140] 发布于 2008-11-03 12:02:00
[b]没实干[/b][em9]
我来回复