有R、P、C三个字母和三个运算符-、//、*、需要实现
(1)先把 3个字母进行排列,得到几组不同的排列顺序
(2)再从三种运算符中任选两种插入到三个字母的中间(可以重复)。如
R-P//C;p-R-C;等等形式
把所有形式输出显示。
请高手赐教!谢谢!
(1)先把 3个字母进行排列,得到几组不同的排列顺序
(2)再从三种运算符中任选两种插入到三个字母的中间(可以重复)。如
R-P//C;p-R-C;等等形式
把所有形式输出显示。
请高手赐教!谢谢!
一个字符串数组存储rpc的六种排列顺序
然后在数组的每个元素添加各种运算符。每个元素有九种添加符号方式
所以总共应该有54种结果
Dim X() As String, I As Integer, J As Integer, K As Integer, TEMP As String, TEMP1 As String, S() As String, N As Integer
X() = Split("R1P2C,R1C2P,P1C2R,P1R2C,C1R2P,C1P2R", ",")
For I = 0 To 5
TEMP = X(I)
For J = 1 To 3
TEMP1 = Replace(TEMP, "1", Array("-", "//", "*")(J - 1))
For K = 1 To 3
N = N + 1
ReDim Preserve S(1 To N)
S(N) = Replace(TEMP1, "2", Array("-", "//", "*")(K - 1))
Next
Next
Next
Debug.Print Join(S, vbCrLf)
Debug.Print "共 " & N & " 个!"
End Sub
返回:R-P-C
R-P//C
R-P*C
R//P-C
R//P//C
R//P*C
R*P-C
R*P//C
R*P*C
R-C-P
R-C//P
R-C*P
R//C-P
R//C//P
R//C*P
R*C-P
R*C//P
R*C*P
P-C-R
P-C//R
P-C*R
P//C-R
P//C//R
P//C*R
P*C-R
P*C//R
P*C*R
P-R-C
P-R//C
P-R*C
P//R-C
P//R//C
P//R*C
P*R-C
P*R//C
P*R*C
C-R-P
C-R//P
C-R*P
C//R-P
C//R//P
C//R*P
C*R-P
C*R//P
C*R*P
C-P-R
C-P//R
C-P*R
C//P-R
C//P//R
C//P*R
C*P-R
C*P//R
C*P*R
共 54 个!
Private Sub Command1_Click()
Dim a, b, i, j, k, m, n, s(), t
a = Array("R", "P", "C")
b = Array("-", "//", "*")
For i = 0 To 2
For j = 0 To 2
For k = 0 To 2
If k <> i Then
For m = 0 To 2
For n = 0 To 2
If n <> i And n <> k Then
t = t + 1
ReDim Preserve s(1 To t)
s(t) = a(i) & b(j) & a(k) & b(m) & a(n)
End If
Next n
Next m
End If
Next k
Next j
Next i
Debug.Print Join(s, vbNewLine)
Debug.Print t
End Sub