`
cjc
  • 浏览: 680365 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 
分享到:
评论

相关推荐

    Java 二十四点程序 24点程序 加减乘除24

    Java 二十四点程序是一款基于图形用户界面(GUI)的应用程序,设计用于解决经典的数学游戏——24点。这个游戏的目标是通过加、减、乘、除四种基本运算,使得四个给定的1到13之间的数字组合的结果恰好等于24。程序的...

    24点游戏以及通用的24点计算器源码

    这是一个二十四点小程序,功能分成二十四点游戏和二十四点计算器两个部分。目标及其实现如下。 1. 目标:控制台输入4个数字,产生一组解 实现:【24点计算机---一个结果】 2. 目标:测试所有二十四点问题,给出...

    给你四张牌,算初24点

    而"算24点"可能是程序源代码,可能是用Python、Java、C++等语言实现的24点计算程序,通过读取四张牌的值,然后运行程序,输出所有可能的解。 学习和理解24点算法不仅有助于提升数学技能,还能培养编程思维。通过...

    matlab 二十四点游戏

    【标题】"matlab 二十四点游戏"是一个利用MATLAB编程实现的经典数学游戏,目标是通过加、减、乘、除运算将四张牌的数值组合成24。这个游戏不仅锻炼了玩家的逻辑思维和计算能力,同时也展示了MATLAB作为编程工具在...

    scratch图形化少儿编程24点小游戏

    scratch图形化少儿编程24点小游戏

    二十四点计算(及源代码)

    《二十四点计算及其源代码解析》 在计算机编程领域,"二十四点计算"是一个常见的算法问题,它源自一种广受欢迎的数学游戏。该游戏的目标是使用四张扑克牌上的数字,通过加减乘除和括号操作,使得计算结果等于24。...

    基于Java的Android应用程序开发-24点游戏源码+详细项目说明.zip

    基于Java的Android应用程序开发-24点游戏源码+详细项目说明.zip 基于Java的Android应用程序开发-24点游戏源码+详细项目说明.zip 基于Java的Android应用程序开发-24点游戏源码+详细项目说明.zip 【项目介绍】 该资源...

    二十四点小游戏,用c++实现的

    二十四点游戏是一款广受欢迎的智力挑战游戏,目标是将四张牌(每个1到13之间)通过加、减、乘、除运算得出24的结果。本项目使用C++编程语言实现了这个小游戏,下面我们将深入探讨其背后的算法和程序设计思路。 1. *...

    二十四点程序源码(java)

    【标题】"二十四点程序源码(java)"所涉及的知识点主要集中在Java编程语言上,特别是关于算法设计和实现的技巧。24点游戏是一个经典的数学和逻辑思维游戏,玩家需要通过加减乘除四则运算将四张牌的数值组合成24。这...

    24点算法

    24点游戏,一个深受人们喜爱的智力挑战,它的目标是通过加、减、乘、除四种运算将四张牌的数值组合成24。自动求解24点的问题,实际上就是设计一个算法,能够系统地遍历所有可能的运算路径,找到满足条件的答案。在这...

    二十四点小游戏源程序

    【二十四点小游戏源程序】是一种基于数学和逻辑思维的娱乐活动,它源于中国的传统益智游戏,玩家需要通过加、减、乘、除运算将四张扑克牌的点数组合成24点。在这个源程序中,我们看到它是用Visual Studio C++编写的...

    VC++6.0编写的二十四点游戏

    【VC++6.0编写的二十四点游戏】是一款基于经典的数学娱乐项目——“二十四点”设计的计算机程序。这款游戏利用VC++6.0这一经典且功能强大的编程环境,展现了计算机科学在解决逻辑与算法问题上的潜力。在此,我们将...

    MFC界面二十四点程序

    【MFC界面二十四点程序】是一款基于Microsoft Foundation Classes (MFC)库开发的应用程序,它设计用于解决24点游戏的计算问题。24点游戏是一种流行的心智锻炼游戏,玩家需要通过加减乘除四种基本数学运算,将四张...

    二十四点游戏

    【二十四点游戏】是一款经典的智力挑战游戏,源自中国,它基于基础数学运算——加、减、乘、除,目标是通过这些运算使四个给定的数字得出结果为24。这个游戏旨在锻炼玩家的逻辑思维、心算能力和反应速度,特别适合各...

    一个计算24点程序

    24点游戏,又称二十四点,是一项广受欢迎的数学智力游戏。它源于中国,挑战玩家在四张扑克牌(数字从1到13)中寻找组合方式,使得通过加、减、乘、除运算得出24这个结果。在编程领域,设计一个计算24点的程序是一项...

    C语言二十四点游戏源码+注释.zip

    二十四点游戏通常需要玩家从四张1到13的扑克牌中找到运算方式,使得结果等于24。这个游戏在编程领域常被用来练习基础的编程技巧、逻辑思维以及算法设计。 【描述】: "此文件为C语言二十四点游戏源码+注释。诚实有效...

    计算二十四点

    标题“计算二十四点”指的是一个基于四张扑克牌进行数学运算以得到结果24的程序。这个程序设计的目的是帮助用户解决经典的二十四点游戏中的计算挑战。二十四点游戏是一种流行的心算游戏,玩家需要通过加、减、乘、除...

    24点游戏swing _24点_

    标题中的“24点游戏Swing”指的是使用Java Swing库开发的一款基于24点规则的桌面游戏。Swing是Java的一个图形用户界面(GUI)工具包,它提供了丰富的组件和功能来创建桌面应用,包括游戏。在这个游戏中,玩家需要通过...

    用C语言实现计算24点

    这是第一个24点,大家可以参考,改进; 大家互相学习,谢谢 作者QQ2051510483

    24点计算器(c语言源码)

    【描述】提到的“简单的二十四点计算器”表明,这个程序设计得相对基础,适合初学者学习和高级开发者参考。它可能包含了一些基本的输入处理、数学逻辑判断以及循环结构。源码的发布者希望这个项目能够作为学习C语言...

Global site tag (gtag.js) - Google Analytics