ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2025|回复: 11

[讨论]4个数通过四则运算等于24的程序编写

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-2-25 08:14 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

要求:随意给出4个整数,通过 +  -  *  /   运算,使答案等于24。例如:1*2*3*4=24,5+6*3+1=24

我自己编写了一个,有很多嵌套循环,谁有更好的思路,请写出来,大家一起研究

以下是我的程序代码:(自己优化了一下程序,可以快速运行了,重新粘贴代码,但是括号“()”的问题还有待解决

Option Explicit
Sub a24()

    Dim x(3) As String, y(3) As Long
    Dim a As String, b As Long
    Dim i As Long, j As Long
    Dim m1 As Long, n As Long, n1 As Long, o As Long, o1 As Long, p As Long, p1 As Long
       
    Application.ScreenUpdating = False
   
        For i = 0 To 3
        x(i) = Choose(i + 1, "+", "-", "*", "/")
        y(i) = InputBox("请输入第" & i + 1 & "个值", "x" & i + 1)
        Next i
               
        For m1 = 0 To 3
            For n = 0 To 3
                For n1 = 0 To 3
                If n1 = m1 Then Exit For
                    For o = 0 To 3
                        For o1 = 0 To 3
                        If o1 = m1 Or o1 = n1 Then Exit For
                            For p = 0 To 3
                                For p1 = 0 To 3
                                If p1 = m1 Or p1 = n1 Or p1 = o1 Then Exit For
                      a = y(m1) & x(n) & y(n1) & x(o) & y(o1) & x(p) & y(p1)
                      b = Evaluate(a)
                        If b = 24 Then
                        MsgBox a & "=24"
                        End If
                                Next p1
                            Next p
                        Next o1
                    Next o
                Next n1
            Next n
        Next m1
 
     MsgBox "不等于二十四"
    
     Application.ScreenUpdating = True
    
End Sub

[此贴子已经被作者于2008-2-25 17:37:09编辑过]

TA的精华主题

TA的得分主题

发表于 2008-2-25 09:03 | 显示全部楼层

ref:

这是一个计算24的源代码,出于一位初二年级的学生,具体出处忘了

ibpnSYcY.rar (6.46 KB, 下载次数: 31)


TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-25 11:03 | 显示全部楼层

下载了,但是不能用

QUOTE:
以下是引用BobPan在2008-2-25 9:03:33的发言:

ref:

这是一个计算24的源代码,出于一位初二年级的学生,具体出处忘了


下载后,好像是一些vb编程形成的文件,打不开,程序运行不了,更是看不到源码。

如果能把源码上传就好了

TA的精华主题

TA的得分主题

发表于 2008-2-25 12:41 | 显示全部楼层
在百度上搜索“24点算法”有很多例子

TA的精华主题

TA的得分主题

发表于 2008-2-25 13:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用fclyjzyk在2008-2-25 11:03:01的发言:

下载后,好像是一些vb编程形成的文件,打不开,程序运行不了,更是看不到源码。

如果能把源码上传就好了

对,是VB源代码,需要用VB打开!

TA的精华主题

TA的得分主题

发表于 2024-7-28 11:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
上面的代码运行1,2,2,5居然不等于24?(=(5+1)*(2+2))

TA的精华主题

TA的得分主题

发表于 2024-7-28 13:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ayuze 发表于 2024-7-28 11:18
上面的代码运行1,2,2,5居然不等于24?(=(5+1)*(2+2))

代码是不是要求4个数字不能重复,两个2不行

TA的精华主题

TA的得分主题

发表于 2024-7-28 15:03 | 显示全部楼层
6年前人家没学过括号,1楼已经提到了。

TA的精华主题

TA的得分主题

发表于 2024-7-28 16:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我就是想来抄一段可以在VBA算扑克24的代码

TA的精华主题

TA的得分主题

发表于 2024-7-28 17:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ayuze 发表于 2024-7-28 16:26
我就是想来抄一段可以在VBA算扑克24的代码

找到了。
香川群子 于 2014-3-21 16:55 编辑

佩服、佩服、佩服、佩服、佩服、佩服、佩服……
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 06:44 , Processed in 0.048377 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表