有R、P、C三个字母和三个运算符-、//、*、需要实现
(1)先把 3个字母进行排列,得到几组不同的排列顺序
(2)再从三种运算符中任选两种插入到三个字母的中间(可以重复)。如
 R-P//C;p-R-C;等等形式
  把所有形式输出显示。
请高手赐教!谢谢!  

解决方案 »

  1.   

    只有三个字母好办。
    一个字符串数组存储rpc的六种排列顺序
    然后在数组的每个元素添加各种运算符。每个元素有九种添加符号方式
    所以总共应该有54种结果
      

  2.   

    Private Sub Command1_Click()
    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 个!
      

  3.   

    直观方法:
    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