zoukankan      html  css  js  c++  java
  • 24点

    在a1,a2,a3,a4单元格内输入数字,如果能算24点的话在b列显示解法,如果有多种解法则分别在b1,b2...中显示:

    Sub get24p()
    Const p24 = "123412431324134214231432213421432314234124132431312431423214324134123421412341324213423143124321"
    Dim A As Integer, B As Integer, C As Integer, D As Integer
    Dim i As Integer, answer As New Collection, ARR(1 To 65536, 1 To 1) As String, K As Integer
    On Error Resume Next
    For i = 0 To 23
    A = Cells(Mid(p24, i * 4 + 1, 1), 1)
    B = Cells(Mid(p24, i * 4 + 2, 1), 1)
    C = Cells(Mid(p24, i * 4 + 3, 1), 1)
    D = Cells(Mid(p24, i * 4 + 4, 1), 1)
    If A <= B And B <= C And C <= D Then answer.Add A & "+" & B & "+" & C & "+" & D & "=24", A & "+" & B & "+" & C & "+" & D & "=24"
    If B <= C Then answer.Add A & "+(" & B & "+" & C & ")/" & D & "=24", A & "+(" & B & "+" & C & ")/" & D & "=24"
    If A <= B Then answer.Add A & "+" & B & "+" & C & "-" & D & "=24", A & "+" & B & "+" & C & "-" & D & "=24"
    If B > C / D Then answer.Add A & "/(" & B & "-" & C & "/" & D & ")" & "=24", A & "/(" & B & "-" & C & "/" & D & ")" & "=24"
    If C <= D Then answer.Add A & "/" & B & "+" & C & "+" & D & "=24", A & "/" & B & "+" & C & "+" & D & "=24"
    If B <= C Then answer.Add A & "*(" & B & "+" & C & "/" & D & ")" & "=24", A & "*(" & B & "+" & C & "/" & D & ")" & "=24"
    If B <= C Then answer.Add A & "*(" & B & "+" & C & ")+" & D & "=24", A & "*(" & B & "+" & C & ")+" & D & "=24"
    If B <= C Then answer.Add A & "*(" & B & "+" & C & ")-" & D & "=24", A & "*(" & B & "+" & C & ")-" & D & "=24"
    If C <= D Then answer.Add A & "*" & B & "+" & C & "+" & D & "=24", A & "*" & B & "+" & C & "+" & D & "=24"
    If A <= B And C <= D Then answer.Add A & "*" & B & "+" & C & "*" & D & "=24", A & "*" & B & "+" & C & "*" & D & "=24"
    If A <= B Then answer.Add A & "*" & B & "+" & C & "-" & D & "=24", A & "*" & B & "+" & C & "-" & D & "=24"
    If A <= B Then answer.Add A & "*" & B & "/" & C & "+" & D & "=24", A & "*" & B & "/" & C & "+" & D & "=24"
    If A <= B And C <= D Then answer.Add A & "*" & B & "/" & C & "/" & D & "=24", A & "*" & B & "/" & C & "/" & D & "=24"
    If A <= B Then answer.Add A & "*" & B & "/" & C & "-" & D & "=24", A & "*" & B & "/" & C & "-" & D & "=24"
    If A <= B And B <= C Then answer.Add A & "*" & B & "*" & C & "+" & D & "=24", A & "*" & B & "*" & C & "+" & D & "=24"
    If A <= B And B <= C Then answer.Add A & "*" & B & "*" & C & "/" & D & "=24", A & "*" & B & "*" & C & "/" & D & "=24"
    If A <= B And B <= C And C <= D Then answer.Add A & "*" & B & "*" & C & "*" & D & "=24", A & "*" & B & "*" & C & "*" & D & "=24"
    If A <= B And B <= C Then answer.Add A & "*" & B & "*" & C & "-" & D & "=24", A & "*" & B & "*" & C & "-" & D & "=24"
    If A <= B And C <= D Then answer.Add A & "*" & B & "-" & C & "*" & D & "=24", A & "*" & B & "-" & C & "*" & D & "=24"
    If A <= B And B <= C Then answer.Add "(" & A & "+" & B & "+" & C & ")/" & D & "=24", "(" & A & "+" & B & "+" & C & ")/" & D & "=24"
    If A <= B And B <= C Then answer.Add "(" & A & "+" & B & "+" & C & ")*" & D & "=24", "(" & A & "+" & B & "+" & C & ")*" & D & "=24"
    If A <= B And C <= D And A * B <= C * D Then answer.Add "(" & A & "+" & B & ")*(" & C & "+" & D & ")=24", "(" & A & "+" & B & ")*(" & C & "+" & D & ")=24"
    If A <= B Then answer.Add "(" & A & "+" & B & ")*(" & C & "-" & D & ")=24", "(" & A & "+" & B & ")*(" & C & "-" & D & ")=24"
    If A <= B Then answer.Add "(" & A & "+" & B & ")*" & C & "/" & D & "=24", "(" & A & "+" & B & ")*" & C & "/" & D & "=24"
    If A <= B And C <= D Then answer.Add "(" & A & "+" & B & ")*" & C & "*" & D & "=24", "(" & A & "+" & B & ")*" & C & "*" & D & "=24"
    If A <= B Then answer.Add "(" & A & "+" & B & "-" & C & ")*" & D & "=24", "(" & A & "+" & B & "-" & C & ")*" & D & "=24"
    If A >= B And C >= D Then answer.Add "(" & A & "-" & B & ")*(" & C & "-" & D & ")=24", "(" & A & "-" & B & ")*(" & C & "-" & D & ")=24"
    If C <= D Then answer.Add "(" & A & "-" & B & ")*" & C & "*" & D & "=24", "(" & A & "-" & B & ")*" & C & "*" & D & "=24"
    answer.Add "(" & A & "-" & B & "/" & C & ")*" & D & "=24", "(" & A & "-" & B & "/" & C & ")*" & D & "=24"
    answer.Add A & "*(" & B & "-" & C & ")+" & D & "=24", A & "*(" & B & "-" & C & ")+" & D & "=24"
    answer.Add A & "*(" & B & "-" & C & ")-" & D & "=24", A & "*(" & B & "-" & C & ")-" & D & "=24"
    answer.Add "(" & A & "-" & B & ")*" & C & "/" & D & "=24", "(" & A & "-" & B & ")*" & C & "/" & D & "=24"
    Next

    For i = 1 To answer.Count
    If Application.Evaluate(answer(i)) = True Then
    K = K + 1
    ARR(K, 1) = answer(i)
    End If
    Next
    If K = 0 Then ARR(1, 1) = "无解!"
    Application.ScreenUpdating = False
    Range("B1:B65536") = ARR
    Range("B1:B65536").Columns.AutoFit
    Application.ScreenUpdating = True
    MsgBox "找到了" & K & "个解!!!"

    End Sub

     
  • 相关阅读:
    spring cloud-Feign支持接口继承方式快速生成客户端【代码结构】
    基本数据类型及包装数据类型
    static关键字
    git多分支管理方案
    python1
    python学习-linux基本操作
    tomcat7以上的版本,400BadRequest
    ubuntn 安装软件
    win7升级到win10,出现算术运算溢出问题
    tomcat6升级到7时400问题,以及url带有汉字时出错。
  • 原文地址:https://www.cnblogs.com/fengju/p/6336326.html
Copyright © 2011-2022 走看看