我试图写一些会打印满足以下限制的值的vba:
b * k = t * k
lambda = r * (k - 1) / (t - 1)
,(t - 1) >= (k - 1)
& lambda
必须是整数。
以下是算法:
Sub BIBDs()
Dim t, b, k, r As Integer
Dim lambda As String
For t = 2 To 50
For b = 2 To 20
For r = 1 To 20
For k = 3 To 5
If b * k = t * k & (t - 1) >= (k - 1) Then
lambda = r * (k - 1) / (t - 1)
If lambda = Int(lambda) Then
Debug.Print t, b, r, k, lambda
End If
End If
Next k
Next r
Next b
Next t
End Sub
"立即&#34>没有打印任何内容。窗口。我不确定算法或我的打印方法是否有问题。具体来说,我不确定我是否正确检查lambda是一个整数。
答案 0 :(得分:2)
尝试
If b * k = t * k And (t - 1) >= (k - 1) Then
而不是
If b * k = t * k & (t - 1) >= (k - 1) Then
& VBA中的运算符与逻辑和运算符不同:https://msdn.microsoft.com/en-us/library/wfx50zyk.aspx